首页 > 代码库 > VC++编写DLL导出函数及其调用方法
VC++编写DLL导出函数及其调用方法
DLL (Dynamic Link Library)动态链接库,是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件,其优点主要有:1. 有助于节省内存;2. 有助于资源共享;3. 不需编译的软件系统升级;4. 支持多语言程序。当然,有的时候我们也可以将一些核心的或者不愿意公开提供的函数编写为DLL,从而起到隐藏和保护的作用。
下面结合实例详细说明在Visual Studio 2008 SP1 IDE中如何创建、编写和导出VC++ MFC DLL,以及如何调用生成的DLL。(完整实例可在我的CSDN资源中下载:http://download.csdn.net/detail/margin1988/8336697)
(1)打开Visual Studio 2008 SP1 IDE,创建VC++ MFC DLL工程,如图所示:
(2)在自动生成的“工程名.cpp”(如:FirstDLL.cpp)文件中,编写要导出的函数(注:在该项目属性中工程字符集选择了“使用多字节字符集”):
/**函数:int calculateLineNum(CString filePath) 功能:用于计算文本文件的行数 描述:只需要指定文本文件的路径,若找到,则返回其行数,若没找到,则返回0 */ extern "C" _declspec(dllexport) int calculateLineNum(CString filePath){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); CStdioFile file; CString str; int lineNum=0; if (file.Open(_T(filePath),CFile::modeRead | CFile::typeText)) { file.SeekToBegin(); while (file.ReadString(str)) { lineNum++; } file.Close(); } return lineNum; }(3)点击“生成解决方案”,生成了供程序调用的DLL文件和Lib文件(该例中只是导出了一个函数,不需要.h文件);
(4)生成DLL及其导出函数的调用方法:
1)将.dll和.lib文件拷贝到你的工程的目录下;
2)在程序中预定义和导入库和函数:#pragma comment(lib, "FirstDLL.lib") extern "C" _declspec(dllimport) int calculateLineNum(CString filePath);3)或者,也可以在工程的属性中添加链接:
然后,程序中就只需要这一句:
extern "C" _declspec(dllimport) int calculateLineNum(CString filePath);4)调用DLL中的导出函数:
CString path="ReadMe.txt"; int num = calculateLineNum(path);
VC++编写DLL导出函数及其调用方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。