我对非托管c ++不太熟悉,因为我只使用过MFC和Dot Net。我有一个非托管的DLL,我想引用一个进程外的服务器。我尝试过以下方法:
#import "C:\Program Files (x86)\statconn\DCOM\bin\StatConnectorSrv.exe"
using namespace STATCONNECTORSRVLib;
和
#import "C:\Program Files (x86)\statconn\DCOM\bin\StatConnectorSrv.tlb"
using namespace STATCONNECTORSRVLib;
STATCONNECTORSRVLib包含对象StatConnector。但是,当我尝试实例化StatConnector时,我得到一个"不完整的类型是不允许的",而intellisense告诉我StatConnector是一个结构。
StatConnector *conn = new StatConnector();
我做错了什么?
答案 0 :(得分:3)
假设你的StatConnectorSrv.tlb包含一个带有ISomething
方法的接口MyMethod
和一个coclass Something
,那么你可以像这样实例化它:
#import "C:\Program Files (x86)\statconn\DCOM\bin\StatConnectorSrv.tlb"
using namespace STATCONNECTORSRVLib;
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
ISomethingPtr ptr(__uuidof(Something)); // create an instance of the Something coclass and get an ISomething pointer back
ptr->MyMethod(parameters of the method);
CoUninitialize();
return 0;
}