請幫助使用ATL COM DLL方法在C#應用程序導入和調用COM DLL
在ATLLib.idl
...
interface IATLLibMain : IUnknown{
[helpstring("method hello")] HRESULT hello([out,retval] BSTR* res);
};
...
在ATLLibMain.cpp
(ATL SimpleObject
類)
STDMETHODIMP CATLLibMain::hello(BSTR* res)
{
*res = SysAllocString(L"Hello world!!!");
return S_OK;
}
我編譯並註冊了COM。 在C#項目,添加引用ATLLib.dll並試圖調用方法這樣
IATLLibMain atllib = new ATLLibMainClass();
Console.WriteLine(atllib.hello());
和VS給出錯誤
System.Runtime.InteropServices.COMException
類型的未處理的異常出現在ATLLibTest.exe。檢索COM類工廠組件具有CLSID {...}失敗,原因是下面的錯誤80040154
上線
IATLLibMain atllib = new ATLLibMainClass();
請說明使用ATL DLL任何項目樣本在C#應用程序或幫助修復此錯誤? 謝謝...
你得到有關異常的比這更好的方式。 Message和ErrorCode屬性對於診斷異常很重要。只需將消息字符串粘貼到搜索框中,您就很可能找到答案。 – 2013-03-03 13:09:01
直到您還向我們顯示異常的確切錯誤消息(每個異常都有Message屬性)以及堆棧跟蹤之前,都不可能分辨出來。也許你忘記了一些改變後重新註冊你的COM DLL? – 2013-03-03 15:16:46
'檢索COM類工廠具有CLSID {...}組件未能由於以下錯誤80040154.' 上線 'IATLLibMain atllib =新ATLLibMainClass();' – 2013-03-03 16:19:21