动态链接库编写基本上可以分为五种方法
从使用角度来看,编写程序只有一种最实用!
Visual C++
支持三种
DLL
:
Non-MFCDLL(非MFC动态库)
MFCRegular DLL(MFC规则DLL)
MFCExtension DLL(MFC扩展DLL)
最常用的当然是Non-MFCDLL,
不仅mfc可以用其他的也可以用!
首先打开vc6.0建立一个动态链接库,
然后选择
A simple DLL project
然后点击finish按钮
这样就生成了一个简单的DLL文件
然后再里面添加相关代码
例子:实现加法运算
int _stdcall add(int a, int b)
{
return a + b;
}
int _stdcall sub(int a, int b)
{
return a - b;
}
然后再 File->New->Text File文档,文件名注意了
文件后缀为 .def
def文件里面写法需要注意
LIBRARY jsqdll
EXPORTS
add
sub
LIBRARY 后面的字符串一定是 刚才建立项目的名字!
add sub 是函数
然后既可以编译连接了
成功之后,我们测试一下!
新建一个控制台程序
#include <windows.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int sum = 0 ;
HINSTANCE hin = LoadLibrary("jsqdll.dll");
typedef int (_stdcall *lpadd)(int,int);
lpadd addfunc;
if (hin != NULL)
{
addfunc = (lpadd)GetProcAddress(hin,"add");
if (addfunc != NULL)
{
sum = addfunc(1,2);
cout<<sum<<endl;
FreeLibrary(hin);
}
}
return 0;
}