2014-02-15 46 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。

相关问题