Call COM object method from Go without CGo

89 views
Skip to first unread message

lars....@googlemail.com

unread,
Aug 26, 2016, 4:47:35 AM8/26/16
to golang-nuts
I have created a Direct3D9 wrapper in Go which uses CGo to interface with the COM objects in C. (https://github.com/gonutz/d3d9)

I would like to get rid of the dependency on a C-compiler under Windows so the user would not have to install MinGW or Cygwin to use DirectX from Go.

The problem is that d3d9.dll does not expose C-functions but uses COM. The only function that can be called directly after loading the DLL (with syscall.LoadLibrary("d3d9.dll")) is Direct3DCreate9. This returns a COM object which exposes all functionality as methods.

How can I call COM object methods in a DLL from pure Go without CGo?

I know of the Go-OLE library (https://github.com/go-ole/go-ole) which states it calls COM interfaces without CGo but I cannot, from the sources, see how I would go about doing the same thing for Direct3D9. A simple example with only the relevant parts would be of great help.
Reply all
Reply to author
Forward
0 new messages