2014-02-15 48 views
1

我想構建一個非常簡單的DLL文件,它支持MFC。 我使用VS2010。一個簡單的DLL使用VS2010 MFC +一個測試應用程序

我在網上找到的所有例子都顯示瞭如何導出類函數成員。

但我的客戶,最後應該是C程序。意思是,它不知道使用類和對象。 我只需要爲它導出一些簡單的功能。

我所做的到現在是把下面就我的DLL CPP文件:

extern "C" __declspec(dllexport) CString SayHello (CString strName){ 
    return theApp.SayHello(strName); 
} 

和應用I類寫道:

CString CMyDLLApp::SayHello(CString strName){ 
    return (CString)"Hello " + strName; 
} 

我創建了一個簡單的基於對話框的應用程序,這是假設使用這樣的功能,就像這樣

CString strResult = SayHello(m_edit); 

在我將DLL h文件包含在文件的頂部之後:

#include "..\MyDll\MyDll.h" 

但是編譯器說:錯誤C3861:「的SayHello」:標識符沒有找到

能否請您指導我該怎麼辦呢?不要讓我不要在我的DLL上使用MFC,因爲我想使用它的數據庫類。

另外,如何測試它?我不在乎測試程序本身是否也是基於MFC的。

謝謝,塔爾。

+0

您需要將DLL包含在項目中,併爲其導入類。 MS有一個教程。只是谷歌「使用DLL的C++」 –

+1

我希望你的** C程序**不會嘗試並使用返回一個'CString'的函數。 –

+0

謝謝guys.Moo,不,它不會/ – dushkin

回答

0

試試這個聲明在你的應用程序擺脫編譯器錯誤的:

extern "C" __declspec(dllimport) CString SayHello (CString strName); 

但你不能從DLL中直接得到該app。添加另一個DLL函數將指向該應用程序的指針傳遞給DLL。

相關問題