Win32 dll 的简单创建与使用

来源:互联网 发布:天猫淘宝棉拖鞋 编辑:程序博客网 时间:2024/04/30 21:21

Win32 dll 的简单创建与使用

 

使用工具:Microsoft visual c++ 6.0

 

一、创建dll工程以及生成dll

1、利用vc++创建一个win32 dynamic-link library类型的工程。

 

2、工程取名为:xxx

3、单击ok后,选择按empty dll project

 

4、为该工程添加一个c++源文件

 

5、在c++源文件中输入如下代码(当然也可以是其他你想共享的函数或类,我们先做简单的):

int add(int a,int b)

{

return a+b;

}

 

int subtract(int a,int b)

{

return a-b;

}

 

6、利用build命令生成这个动态链接库程序。

 

二、使用dumpbin命令

1、用Windows自带的dos运行C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT

 

2、在你生成dll文件的目录中运行,命令:dumpbin -exports dll01.dll

 

输的信息中没有与函数有关的信息,这说明dll01.dll没有导出函数。

三、从dll中导出函数

只需要在要被导出函数前添加表示符:_declspec(dllexport) 就行。如:

_declspec(dllexport) int add(int a,int b)

{

return a+b;

}

 

_declspec(dllexport) int subtract(int a,int b)

{

return a-b;

}

然后,从新执行build命令生成dll动态链接库。

再次在你生成dll文件的目录中运行,命令:dumpbin -exports dll01.dll

 

 

四、win32 控制台程序调用自己制作的dll

1、在vc++中创建win 32 控制台程序。

2、将自己制作的dll文件和lib文件都复制到该工程的目录下。

3、在工程中添加一个c++源文件

4、输入如下代码:

#include<iostream>

using namespace std;

 

extern int add(int a,int b);

extern int subtract(int a,int b);

 

int main()

{

int a = 5;

int b = 2;

cout<<"a+b="<<add(a,b)<<endl;

cout<<"a-b="<<subtract(a,b)<<endl;

return 0;

}

5、执行build命令,出现如下错误:

--------------------Configuration: dllTest01 - Win32 Debug--------------------

Linking...

main.obj : error LNK2001: unresolved external symbol "int __cdecl subtract(int,int)" (?subtract@@YAHHH@Z)

main.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)

Debug/dllTest01.exe : fatal error LNK1120: 2 unresolved externals

Error executing link.exe.

 

dllTest01.exe - 3 error(s), 0 warning(s)

这是由于没有指明lib文件后果。单击菜单project-->settings...-->link。将自己制作的lib文件名粘贴到:

 

注意:空格隔开

6、再次执行build命令,执行程序。

 

 

至此,我们就完成的最简单的dll动态链接库的制作及调用。

0 0