【发布时间】:2014-02-15 15:43:18
【问题描述】:
我正在尝试构建一个非常简单的支持 MFC 的 DLL 文件。 我用的是VS2010。
我在网上找到的所有示例都显示了如何导出类函数成员。
但我的客户最终应该是一个C 程序。意思是,它不知道使用类和对象。 我只需要为它导出一些简单的函数。
到目前为止,我所做的是将以下内容放在我的 dll cpp 文件中:
extern "C" __declspec(dllexport) CString SayHello (CString strName){
return theApp.SayHello(strName);
}
在我写的应用类上:
CString CMyDLLApp::SayHello(CString strName){
return (CString)"Hello " + strName;
}
我创建了一个简单的基于对话框的应用程序,假设它可以像这样使用此功能
CString strResult = SayHello(m_edit);
在我将 DLL h 文件包含在文件顶部之后:
#include "..\MyDll\MyDll.h"
但是编译器说:error C3861: 'SayHello': identifier not found
你能指导我怎么做吗?不要让我不要在我的 DLL 上使用 MFC,因为我想使用它的 DB 类。
另外,如何测试呢?我不在乎测试程序本身是否也基于 MFC。
【问题讨论】:
-
您需要在项目中包含DLL,并为其导入类。 MS有一个教程。只需谷歌“使用 DLL 的 C++”
-
我希望您的 C 程序 不会尝试使用返回
CString的函数。 -
谢谢伙计们。Moo,不,它没有/
-
哞,不,它没有 :-) 我只是在试图理解这个概念的阶段。
-
除了
#include'ing header,还需要导入lib。最简单的方法是将#pragma comment(lib, "MyDll.lib")添加到您执行包含的同一位置。
标签: c++ visual-studio-2010 dll mfc