我得到了一个使用COM库应用程序,我想知道如何知道该应用程序是将该COM库用作LocalServer还是In-Proc?
我以这种方式查看正在构造的代码:
DATCOMLib::ITEmulationPtr pTE(__uuidof(DATCOMLib::TEmulation));发布于 2013-04-06 22:35:56
这在一定程度上取决于您在创建对象时提供的执行上下文-有关更多详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/windows/desktop/ms693716(v=vs.85).aspx
您可以在注册表中查找组件的类id,并检查它是否有LocalServer子项。因此,在您的示例中,您将查找:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{CLSID of DATACOMLib::TEmulation}\LocalServer如果它是进程内COM组件,则它将具有以下密钥:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{CLSID of DATACOMLib::TEmulation}\InProcServer32有关更多详细信息,请查看此文档:http://msdn.microsoft.com/en-us/library/aa908849.aspx
发布于 2013-07-05 14:47:17
可以通过多种方式找到它
查看代码-检查调用"CreateInstance“或"CoCreateInstance”时传递的类上下文是什么- (CLSCTX_INPROC_XXXX则表示它是
如果您有权访问安装了COM组件的计算机,则可以按照Peter在上面的ITEmulationPtr.CreateInstance(uuid(TEmulation), 0, CLSCTX_XXX)
中给出的步骤进行操作
发布于 2013-03-26 10:58:45
https://stackoverflow.com/questions/15628430
复制相似问题