我想使用 COM 连接到正在运行的对象。我有这个代码。
CLSID clsid;
CLSIDFromProgID(L"CSI.ETABS.API.ETABSObject", &clsid);
// get the active ETABS object
CComPtr<IUnknown> pUnk;
auto hRes = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
if(!CheckHRESULT(hRes, L"Cannot get active ETABSObject!")) return (hRes);
hRes = pUnk->QueryInterface(__uuidof(ETABSv17::cOAPI), (void **) &pETABSObject);
if(!CheckHRESULT(hRes, L"Cannot attach to ETABSObject!")) return (hRes);
但是编译器抱怨没有 GUID 与 ETABS:cOAPI 相关联。如何解决这个问题?
确切的错误消息是:无法在没有 guid 的对象上调用运算符 __uuidof。