我在 IDL文件 声明 结构体如下:
typedef
[
uuid(C21871A0-33EB-11D4-A13A-BE2573A1120F),
version(1.0),
helpstring("A Demo UDT variable for VB projects")
]
struct abc {
[helpstring("Name of the variable")] int a;
[helpstring("Value of the variable")] int b;
abc *next;
} abc;
[id(2)] HRESULT testStruct([in,out] abc testv, [out,retval] LONG sum);
编译成功。
但在客户端程序
CoInitialize( NULL );
COSERVERINFO si;
MULTI_QI qi;
ZeroMemory( &si, sizeof( si ) );
ZeroMemory( &qi, sizeof( qi ) );
si.pwszName = L"127.0.0.1";//自己机器的IP
si.pAuthInfo = NULL;
qi.pIID = &IID_ISimpleObject;
qi.pItf = NULL;
long hr = CoCreateInstanceEx(CLSID_SimpleObject, NULL, CLSCTX_REMOTE_SERVER, &si, 1, &qi);
if( FAILED( hr ) || FAILED(qi.hr) )
{
return -1; //连接服务器失败
}
//只要执行到
CoCreateInstanceEx(CLSID_SimpleObject, NULL, CLSCTX_REMOTE_SERVER, &si, 1, &qi);,就会弹出栈溢出。
请问高手指点一下。不胜感激