gpt4 book ai didi

c++ - 从 C++ 调用 COM dll, "Class Not Registered"

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:41 25 4
gpt4 key购买 nike

我在 Microsoft Visual Basic 2008 中创建了一个 COM dll。我试图从 C++ 项目中调用这个 dll。在 C++ 中,我使用了“#import U:\path...\MyComDll.tlb”,然后将以下代码用于 DisplayMessage() 方法。

FB::variant CmdAccessAPI::filePSV(std::string file)
{

CoInitialize(NULL);
try
{
_MyComClassPtr spIMyComClass;
HRESULT hr = spIMyComClass.CreateInstance(__uuidof(_MyComClass));
if (FAILED(hr)) throw _com_error(hr);

spIMyComClass->DisplayMessage();
}
catch (std::exception& e)
{
CString strMsg(e.what());
MessageBox(NULL, strMsg, L"Error", MB_OK);
}
catch (_com_error& e)
{
CString strMsg;
strMsg = (TCHAR*) e.Description();
strMsg += _T("\n");
strMsg += (TCHAR*) e.ErrorMessage();
MessageBox(NULL, strMsg, L"COM Error", MB_OK);
}
CoUninitialize();
return "test";
}

当我调用此函数时,出现类未注册错误。我尝试使用 regsvr32 注册 dll,但收到消息“已加载 MyComDll.dll,但未找到 DLLREgeisterServer 入口点。无法注册此文件。”

我如何注册类(class)并让它发挥作用?

最佳答案

尝试使用管理员权限注册它,右键单击命令提示符并选择以管理员身份运行,并为系统提供 32 路径。然后使用regsvr32 xyz.dll

关于c++ - 从 C++ 调用 COM dll, "Class Not Registered",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com