I've probably searched through the whole internet for this, but is there any place where I can get the x86 version of libdwmapi.a? MinGW, MinGW64 and any version of TDM-GCC do not include it, or only include only the x64 (amd64) version of it.
I've also tried using and/or converting the Windows SDK versions (dwmapi.lib), but that wouldn't work either.
hmm, we seem to miss this library. Well, you can use gendef tool for generating a .def file by this DLL (for 32-bit). By it the import-library can be produced.
If you would provide this .def to us (by sending it as patch to our public mailing-list), we will happily add it to the import-library generation.
lib32/dwmapi.def has been included in the trunk and all stable branches since around rev. 4560 (2011-10-29). I suggest updating to a toolchain using a newer version of mingw-w64 crt.
It's quite easy to simply compile one using dwmapi.lib and dwmapi.dll from a Windows 7 x64 install and SDK:
One might think why I didn't do this anyway (it isn't that hard at all and the Windows SDK is free), but I couldn't find any lib that declares this function (from dwmapi.h):
const MARGINS *pMarInset
Notice the lack of 'WINAPI' after HRESULT. This definiton is wrong according to Microsoft: both dwmapi.lib and the library supplied by the sezero build (probably built using dwmapi.lib) require "WINAPI" to be present. Otherwise, the linker won't have a clue what to call.
And that's the root cause of all the trouble. Both TDM-GCC and MinGW64 have this wrong header definition, which causes homegrown libraries (and the sezero one) not to work.
I might be wrong though. Still, any comments on this?
Yes, looks like the headers are missing WINAPI.
Fixed all function prototypes to be WINAPI as of svn revisions 4980 (stable/v1.x), 4980 (stable/v2.x), and 4982 (trunk). Thanks for noticing.
PS: For sezero builds, use this header from stable/v1.x: http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/stable/v1.x/mingw-w64-headers/include/dwmapi.h?revision=4980
Log in to post a comment.