2013-05-22 232 views
0

我有一些調用COM對象的問題。
HRESULT:0x80040154註冊COM對象

szProgID = Imctrl.Section 
HRESULT hr = CLSIDFromProgID(szProgID, &clsid); 

後執行,HR = S_OK,CLSID = 「CLSID_Section類」。
但是,當我嘗試創建一個對象,CoCreateInstance返回錯誤:「類未註冊」。雖然「Imctrl.Section」存在於註冊表中。

hr = ::CoCreateInstance(clsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&p); 

從這個DLL其他clases相同的錯誤。

+1

也許是32位和64位的問題? COM服務器和COM客戶端必須使用相同的位數(一般情況下) –

+0

註冊表中的「Imctrl.Section」只映射到CLSID,然後CLSID映射到實際的服務器實現,然後它必須存在。總而言之,要麼嘗試實例化一個錯誤的東西,或者服務器不僅僅是註冊/可用(包括32/64可能的原因),這可能是一個問題。 –

回答

0

該問題與32位與64位無關。
使用實用軟件「depends.exe」我發現這個DLL依賴與一些第三方DLL,它不允許訪問該對象。

相關問題