Skip to content

prepare projectM cwrapper for 64-bit#1220

Merged
complexlogic merged 1 commit into
UltraStar-Deluxe:masterfrom
dgruss:projectmwrapper
Mar 27, 2026
Merged

prepare projectM cwrapper for 64-bit#1220
complexlogic merged 1 commit into
UltraStar-Deluxe:masterfrom
dgruss:projectmwrapper

Conversation

@dgruss
Copy link
Copy Markdown
Contributor

@dgruss dgruss commented Mar 27, 2026

UltraStar-Deluxe/mxe#2 requires some updates to the projectM cwrapper to be able to build 64-bit compatible dlls for windows:

The issue was that the wrapper did not define its own ABI explicitly: it relied on an external DLLEXPORT macro for symbol export, and its function definitions relied on the compiler’s default calling convention instead of stating cdecl explicitly. On Windows, where calling convention is part of the ABI, that can lead to compatibility problems for Pascal callers.

The change was to define the wrapper ABI locally via PROJECTM_CWRAPPER_API and PROJECTM_CWRAPPER_CALL, and apply those macros to all exported declarations and definitions so symbol export and calling convention are explicit and work on every platform.

@dgruss
Copy link
Copy Markdown
Contributor Author

dgruss commented Mar 27, 2026

As requested by @s09bQ5

@complexlogic complexlogic merged commit 2b0ffa2 into UltraStar-Deluxe:master Mar 27, 2026
5 checks passed
@dgruss dgruss deleted the projectmwrapper branch March 27, 2026 22:03
@dgruss dgruss restored the projectmwrapper branch April 20, 2026 12:42
@dgruss dgruss deleted the projectmwrapper branch April 20, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants