On Tuesday, 2 October 2012 at 09:48:00 UTC, Andrej Mitrovic wrote:
I'm sorry, I was completely wrong about STDAPI being extern(C).
I saw
EXTERN_C and immediately thought this was the calling
convention, it's
not:
#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
#define STDAPICALLTYPE __stdcall
So this is actually extern(Windows).
Linker errors persist when using implib, but when using
coffimplib on
an existing COFF import library it will link and work at
runtime.
Here's one I made just now:
https://dl.dropbox.com/u/9218759/Ole32_dmd.lib
It works for me with this:
pragma(lib, "Ole32_dmd.lib");
extern(Windows)
int CoInitializeEx(void*, uint dwCoInit);
void main()
{
CoInitializeEx(null, 0x2);
}
Thank you, it does work, and I figured out why my coffimplib
didn't work. I forgot to rename it, so I moved it as out.lib :(
I'm going to go write up some docs tonight.