2014-02-23 101 views
-2

得到了一個第三方的ActiveX DLL,其中有一個風扇的控制對話框。想通過API訪問MFC DLL中的ACtiveX dll,以便能夠打開控件對話框並訪問ActiveX中的其他一些功能。這實際上很簡單嗎?,以及應該在哪裏調用什麼資源?任何例子?在周圍不需要記錄溫度。如何從mfc DLL加載ActiveX DLL

+0

你能發表一些代碼嗎? –

+0

我喜歡得到關於這是乾淨的可能性的一些信息嗎?我在msdn中讀取需要在InitInstance中調用AfxEnableOleContainer()。 – user2057595

+0

最初你問這是否「實際上很容易」*。答案是:這取決於。如果你知道你在做什麼,它是。如果你不這樣做,那不是。考慮閱讀[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)並更新您的問題以符合本網站的期望。 – IInspectable

回答

1

在微軟網站上閱讀了這麼多,想出了一個MFC DLL,其對話框使用ActiveX控件。此外,通過調用dll的opendialog(),我寫了一個MFC和一個控制檯應用程序,我看到對話框啓動。我希望我不會造成任何內存泄漏。或在不知情的情況下造成任何資源(分配)分配錯誤。到目前爲止,事情似乎正在起作用。

BOOL CDllApp::InitInstance() 
{ 
    CoInitialize(0); 
    AfxEnableControlContainer(); 
    return CWinApp::InitInstance(); 
} 

int CDllApp::ExitInstance() 
{ 
    CoUninitialize(); 
    return CWinApp::ExitInstance(); 
} 

In another class, in the same mfc dll, i do this.: 
void CMyClass::opendialog() 
{ 
    AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
    CMyDialog dlg; 
    dlg.DoModal(); 
}