一、環境
VS2013+mfc
二、動態庫
Imccor01.dll
三、注冊成功

四、DLL提供的頭檔案

五、宣告
CDChannel* dchannel = new CDChannel;//無法實體化
CRect rect2(2, 2, 2, 2);
if (!dchannel->Create(_T("test2"), NULL, rect2, this, 1001))
{
AfxMessageBox(_T("生成IMC物件失敗2"));
}
六、結果
一直彈出報錯框。
系統自動列印:
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occsite.cpp(528) : AppMsg - CoCreateInstance of OLE control {679F3C31-232F-11D3-B461-00A024BEC59F} failed.
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occsite.cpp(529) : AppMsg - >>> Result code: 0x80004002
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\occsite.cpp(530) : AppMsg - >>> Is the control is properly registered?
怎么辦啊,所有分了。。。
uj5u.com熱心網友回復:
頂。。。。。。。。。。。。。。。uj5u.com熱心網友回復:
頂。。。。。。。。。。。。。。。uj5u.com熱心網友回復:
在64位Windows下:64位exe和dll在目錄c:\windows\system32目錄下;
32位exe和dll在目錄c:\windows\syswow64目錄下;
所以要注意:
在win64位系統下注冊32位ocx或dll需要將32位ocx或dll拷貝到c:\windows\syswow64\目錄下。
且注冊要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
64 位 Windows 平臺注意點之檔案系統重定向 http://www.cnblogs.com/jiake/p/4981555.html
64 位 Windows 平臺注意點之注冊表重定向 http://www.cnblogs.com/jiake/p/4956218.html
uj5u.com熱心網友回復:
工具箱里能看到嗎注冊要用管理員身份運行regsvr32
uj5u.com熱心網友回復:
你好,趙四老師,我使用C#和Qt就能使用這個類,但是MFC就不行,所以應該是注冊成功了的。你說的用64位的regsvr32注冊我也試過了的。還有其他可能嗎
uj5u.com熱心網友回復:
是管理員。我用c#和qt都能用,mfc就不行
uj5u.com熱心網友回復:
E_NOINTERFACE (0x80004002)看樣子是個 Ole 控制元件, MFC 專案初始化 OLE 了嗎。
uj5u.com熱心網友回復:
執行緒模型是 STA 還是 MTAuj5u.com熱心網友回復:
1.必須用正確的方式注冊OCX控制元件,如果你不能確認是否正確,那么用虛擬機做一個最簡單的,沒有殺毒軟體干擾的,32位的,兼容性較好的系統(XP或者WIN7);2.必須用正確的方式初始化OLE;
3.必須用正確的方式呼叫OCX;
我覺得你的問題可能出在OLE的初始化上,驗證這一點很簡單,用VB 6呼叫下OCX試試。
uj5u.com熱心網友回復:
我也有這個問題好像是注路徑的問題
下載個大漠的注冊機查詢還是什么的改一下就好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/148873.html
標籤:模式及實現
上一篇:[問+求助]C語言
