下面通过例子介绍如何在动态链接库中定义函数、资源、和类以及如何在工程中使用动态链接库中已定义的函数、资源、类。
Dll 的定制
步骤和方法:
第一步:
运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)。
第二步:
在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展
DLL(MFC Extension DLL (using shared MFC DLL),点击FINISH生成工程。
第三步:
点击File中的New,选择C/C++ Header File,File Name中输入mydll.h,点击OK,创建mydll.h。输入extern "C" int PASCAL EXPORT sum(int i, int m, int n);,保存。
第四步:
在mydll.cpp中添加
#include "mydll.h"
extern "C" int PASCAL EXPORT sum(int i, int m, int n)
{
return i+m+n;
}
第五步:
在mydll.def 中添加
EXPORTS
Sum //标记出口
第六步:编译 生成mydll.lib and mydll.dll
主程序定制
第一步:
>>>>选择Project 中Add To Project 中的New , 重新生成一个工程,选择MFC AppWizards(exe),项目名为textdll , 选择dialog ,点击FINISH,生成一个新的工程。。第二步:
拷贝…/mydll/debug/mydll.dll 到 ../ textdll/debug/下,
拷贝…/mydll/debug/mydll.lib到…/textdll/目录下。
拷贝…/mydll/ mydll.h 到 ../ textdll/下,
第三步:
把mydll.h添加到工程里,在textdll.cpp里加入
#include “mydll.h”
第四步:
添加edit控件IDC_EDIT1 和对应的m_edit1 (int)
第五步:
在button1中添加如下代码
m_edit1=sum(1,2,3);
UpdateData(false);
第六步:
在project -setting –link 添加mydll.lib
第七步:
可以编译了
注意:;
1 。Mydll.lib and mydll.dll 的位置 要放对,并且和link对应
2.不要忘记在mydll.def 中添加下面的代码 ,至关重要 它是出口
EXPORTS
; Explicit exports can go here
Sum
3,它是正则dll,用来调用函数的,,
4,这是是静态调用方式,还有一种动态调用的方式