October 02, 2012
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.
1 2
Next ›   Last »