更新时间:2015-11-02 22:04:44浏览次数:1+次
我们打开VC6.0,建立一个基于win32DLL的工程,取名为Dll1:
进去后,我们选择一个空的程序,我们引入C++源文件,写入代码:
int add(int a,int b)
{
return a+b;
}
int subtract(int a,int b)
{
return a-b;
}
当你点击运行时就能生成一个Dll1.dll文件。
.lib文件是一个引入库文件,也就是输入库文件,包含导出的函数以及变量名。
然后测试这两个导出函数,新建一个DllText工程,DllText工程基于MFCexe的对话框工程。
在对话框上加上两个button按钮,ID号为IDC_BTN_ADD以及IDC_BTN_SUBTRACT,然后建立消息响应:
我们看下源码
extern int add(int a,int b);/////表明add函数在外部定义
extern int subtract(int a,int b);/////表明subtract函数在外部定义
void CDllTestDlg::OnBtnAdd()
{
CString str;
str.Format("5+3=%d",add(5,3));
MessageBox(str);
}
void CDllTestDlg::OnBtnSubtract()
{
// TODO: Add your control notification handler code here
CString str;
str.Format("5-3=%d",subtract(5,3));
MessageBox(str);
}
点击运行后,回报错:
编译器不能明确这两个函数的实现,因此报错,之前我介绍了.lib文件里面包含了函数与变量的信息,因此我们引入.lib文件
引入静态文件Dll1.lib,
#pragma comment(linker, "/export:Dll1.lib")你也可以直接在VC菜单栏的工程->属性->链接中设置:
当我们生成工程时,对出现下面的错误:
我们引入Dll1.dll动态链接库,就好了。
我们看下最后的结果:
相关资讯