[us-commits] [ehb54/ultrascan3] d6c7fb: Define US_MAKE_DLL and QWT_DLL for Windows applica...
emre brookes
noreply at github.com
Thu Aug 20 04:23:59 MDT 2026
Branch: refs/heads/ehb54-qmake-win-dllimport
Home: https://github.com/ehb54/ultrascan3
Commit: d6c7fbd12aab697c443183f00b8f48d4af54aae8
https://github.com/ehb54/ultrascan3/commit/d6c7fbd12aab697c443183f00b8f48d4af54aae8
Author: ehb54 <brookes at uthscsa.edu>
Date: 2026-08-20 (Thu, 20 Aug 2026)
Changed paths:
M gui.pri
Log Message:
-----------
Define US_MAKE_DLL and QWT_DLL for Windows application builds
Applications include gui.pri, which never defined US_MAKE_DLL, so
us_extern.h fell through its Windows branch and expanded US_GUI_EXTERN
and US_UTIL_EXTERN to a GCC visibility attribute instead of
__declspec(dllimport). qwt_global.h leaves QWT_EXPORT empty on the same
terms, and only libus_gui.pro defined QWT_DLL.
Without the import attribute MinGW resolves the library classes through
import thunks linked into the executable, so taking the address of a
signal in an application translation unit yields the thunk rather than
the function the library holds. The pointer-to-member form of connect()
matches signals by that address, so every such connection silently
failed to bind on Windows while the string based SIGNAL/SLOT form, which
matches by name, was unaffected.
This surfaced as the meniscus control-click and the scan exclusion click
doing nothing in us_edit on the Windows package. The CMake build
already defines both for every application target, which is why builds
made through the presets were never affected.
To unsubscribe from these emails, change your notification settings at https://github.com/ehb54/ultrascan3/settings/notifications
More information about the us-commits
mailing list