我試圖從VC++ 2005使用COM DLL。我創建了一個ATL的TestCOMlib.dll,創建了一個簡單的界面ISimple並添加了一個屬性(類型LONG,名稱Property01)和一個方法(名稱Method01)。#import導致HRESULT 0x80040154「未註冊的類」
該DLL似乎在系統中正確註冊(我使用OleView檢查條目)。
我創建了一個簡單的MFC對話框應用程序來使用COM DLL。我正在使用#import指令來整合類型庫中的信息。 Visual Studio爲我創建了tlh和tli文件。
然後我試圖獲得ISimple接口,但我得到錯誤0x80040154。 我測試應用中運行的代碼如下:
HRESULT hr = S_OK;
hr = CoInitialize(NULL);
ISimplePtr myRef(__uuidof(ISimple));
// Test prop and method
myRef->Property01 = 5;
LONG test = myRef->Property01;
LONG ret = myRef->Method01(_T("Test input"));
ret = myRef->Method01(NULL);
myRef = NULL;
CoUninitialize();
行返回0x80040154錯誤是ISimplePtr myRef(__ uuidof(ISimple))。 OleView正確顯示接口,並在註冊表中的條目似乎是好的。
我在做什麼錯?任何想法?
問候
糟糕,發現了問題。我必須用__uuidof(簡單)替換__uuidof(ISimple)。 – gionny 2011-02-22 22:30:18