VC6.0中dll文件的创建和使用

1.创建一个dll文件在vc6.0中

VC6.0中dll文件的创建和使用_第1张图片

2.往工程中加入CPP文件,内容如下:

其中的_declspec(dllexport)表示将这个dll文件中的这个方法导出,只有dll文件中的方法或者类被导出了才能被外部调用

VC6.0中dll文件的创建和使用_第2张图片

3.编译这个dll文件会在这个工程目录下的debug目录中出现三个文件,一个lib文件,一个dll文件和一个exp文件,exp文件可以不管他。lib文件存储的是dll文件中方法的入口地址索引等信息,真正的方法实现代码在dll文件中

VC6.0中dll文件的创建和使用_第3张图片

4.如何使用dll文件。新建一个MFC基于对话框的工程test,在其上添加两个按钮add和subtract分别在这两个按钮上添加单击响应事件调用dll文件中的add和subtract方法

VC6.0中dll文件的创建和使用_第4张图片

红框中表示声明dll文件中的方法

VC6.0中dll文件的创建和使用_第5张图片

5.此时编译会出现错误,我们需要将上面的生成的dll文件和lib文件拷贝到test工程目录下(因为工程搜索dll文件路径是本工程中的debug目录中,当前工程目录中,然后是C盘中system32目录中)。然后选择 工程->设置->连接 在 对象/模板库 处添加 DLL.lib,注意如果有多个lib文件,在这里使用空格分隔而不是使用“/”,在编译就可以通过了。

VC6.0中dll文件的创建和使用_第6张图片

6.有时不仅有dll文件和lib文件而且还有h文件,在h文件中其实起到的作用是声明哪些方法被导出可在dll文件外部可用。所以在使用的时候只需包含头文件,就起到了步骤4中图2红框中的作用,实际上在头文件中有这种语句

 

 

 

如果有若干个dll文件以及相对应的lib文件(也可能会有头文件),那么可以这样使用

1.将这些dll文件都拷贝到C盘中system32目录下(也可以拷贝到工程目录下,个人觉的还是拷贝到工程目录下,因为在发布软件的时候这些用到的dll文件需要一同发布)

2.将所有的h文件拷贝到VC98中的include目录下

3.将所有的lib文件拷贝到VC98中的lib目录下(在project->add to project->file中添加在VC98目录下的需要用到的lib文件)

4.写一个新的工程时,只需包含相应的头文件,就可以使用dll中的函数了

注意:个人强烈建议还是将dll文件和lib文件都放在自己创建的工程目下,在project->add to project->file中添加工程目录下的lib文件,否则不注意肯能会出现意想不到的问题,我就在这上面吃过大亏,出现0xc0000005的地址错误,却怎么都找不出是哪里的原因。

 

 

关于dll文件的头文件的写法

1.h文件

VC6.0中dll文件的创建和使用_第7张图片

2.cpp文件

 3.这样在客户端使用dll文件中的函数的时候只需包含头文件即可,不需要使用_declspec(dllimport).

你可能感兴趣的:(VC6.0中dll文件的创建和使用)