我在 C++ 中应用 Invoke 来使用应用程序的对象,但发生错误。错误:信息不可用,没有为 GPNSAutomation.dll 加载符号我的代码是:
::CLSIDFromProgID(OLESTR("SGNSAutomation.SGNSApplication"), &clsid);
IID iid;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL,
IID_IDispatch, (LPVOID*)&pWMPDispatch);
IDispatch * pdisp = (IDispatch *)NULL;
DISPID dispid;
DISPPARAMS params= {NULL,NULL,0,0};
params.cArgs =1;
OLECHAR * Name = OLESTR("importCase");
HRESULT hresult =pWMPDispatch->GetIDsOfNames(IID_NULL,
&Name,1,LOCALE_SYSTEM_DEFAULT,&dispid);
hresult =pWMPDispatch->Invoke(dispid, IID_NULL, LOCALE_USER_DEFAULT,
DISPATCH_METHOD, ¶ms, NULL, NULL,
NULL);
_ASSERT(hr==S_OK);
Run Code Online (Sandbox Code Playgroud) 我正在使用 COM 对象。我调用 COM 对象的函数,此函数返回包含我的设备列表的 SAFE ARRAY 的 VARIANT 数据类型。我如何使用这个 VARIANT 来访问我的设备的 SAFEARRY。
VARIANT namList;
SAFEARRAY* myequip;
namList=str->GetNames();
Run Code Online (Sandbox Code Playgroud)