GetRecordInfoFromGuids()在虚拟机上失败,错误TYPE_E_LIBNOTREGISTERED/-2147319779/0x8002801DL
,但是在我的开发机上,它可以正常工作:
HRESULT hr = GetRecordInfoFromGuids(rGuidTypeLib, 1, 0, 0, __uuidof(T), &pRecInfo);
同时,我可以使用
CoCreateInstance()
成功创建COM服务器的实例,只有此函数失败,因此它必须已注册。编辑:我怀疑这可能是因为我指定了不正确的
uVerMajor
和uVerMinor
。如何检查目标计算机上实际注册的版本? 最佳答案
原来是因为我正在注册我的COM服务器,而不是typelib。
我在用这个:
RegAsm.exe /codebase MyComServer.dll
将其更改为此解决了问题:
RegAsm.exe /register /tlb:MyComServer.tlb /codebase MyComServer.dll