一,MFC扩展DLL
创建:
1,新建一个MFC扩展DLL ,名字为dll5,添加头文件,名为dll5
2,头文件中加入:
extern __declspec(dllexport) CString concatA(CString x,CString y);
3,在cpp文件中加入:
extern __declspec(dllexport) CString concatA(CString x,CString y)
{
return x + y;
}
4,在cpp文件中加入:
#include "dll5.h"
5,编译,生成dll
使用:
1,新建一个单文档应用程序,名为Usedll5
2,将刚才生成的dll5.lib文件和dll5.h文件拷贝到当前应用程序路径下,
将dll5.dll 文件拷贝到 当前应用程序下的debug下
3,在当前应用程序中用到该dll5的导出方法(concatA)的文件(或类)上添加如下语句:
#include "dll5.h"
假设将其加到 Usedll5View.cpp中。
4,在Usedll5View类中建立消息映射入口,在消息函数中添加如下语句:
CString a=concatA("中国北车集团","长春轨道客车股份有限公司");
MessageBox(a);
5,在 工程/设置/连接/对象库/模块 中加入:dll5.lib
6,编译执行该应用程序,并触发该消息,则输出:
中国北车集团长春轨道客车股份有限公司
之后只要定义不更改,函数体无论怎么更改。我们只要将编译好的dll拷贝过来即可。如果定义有了修改,则需要将h文件和lib 文件拷贝过来,并需要重新编译。
二,动态链接库使用共享MFC DLL
创建:
1,新建一个 DLL(选 动态链接库使用共享MFC DLL)
2,头文件中加入:
_declspec(dllexport) CString WINAPI concatA(CString x,CString y);
3,在cpp文件末尾加入:
_declspec(dllexport) CString WINAPI concatA(CString x,CString y)
{
return x + y;
}
4,编译,生成dll
使用:
1,新建一个单文档应用程序,名为Usedll8
2,将刚才生成的dll8.lib文件拷贝到当前应用程序路径下,
将dll8.dll 文件拷贝到 c:\winnt\system32下
3,在当前应用程序中用到该dll5的导出方法(concatA)的 类的头文件上添加如下语句:
extern CString WINAPI concatA(CString x,CString y);
假设将其加到 Usedll8View.h中。
4,在Usedll8View类中建立消息映射入口,在消息函数中添加如下语句:
CString a=concatA("中国北车集团","长春轨道客车股份有限公司");
MessageBox(a);
5,在 工程/设置/连接/对象库/模块 中加入:dll8.lib
6,编译执行该应用程序,并触发该消息,则输出:
中国北车集团长春轨道客车股份有限公司