Attached is a simple dll with a CodeBlocks project using MingW. It uses the Vole library to call a COM object ([url removed, login to view]).
I have run into a stumbling block in that the object g_pTradeDesk2 needs to be global so it can be accessed from other dll functions (such as the FXCMSecond). However, Vole won't allow the creation of an object and then an assigning of what that object is in two steps. Compile the enclosed sample and change the line that reads:
object g_pTradeDesk2 = oCore.invoke_method<object>(L"CreateTradeDesk", L"trader");
g_pTradeDesk2a = oCore.invoke_method<object>(L"CreateTradeDesk", L"trader");
This will error out since g_pTradeDesk2a is the global variable that needs to be global (in some method).
This is a simple task for a seasoned C++ programmer, but I cannot get past it.
After some work, I made some basic changes to implement a global variable. However, when calling the second function, I get an access violation when referencing the global pointer.
Attached is the updated code - please take a look and see if you can remedy the access violation.
Also forgot to mention that the COM API being used is the Order2Go API from FXCM (http://www.fxprogrammers.com)