首页 > 代码库 > vs2013 dll(动态链接库) 文件的创建和引用

vs2013 dll(动态链接库) 文件的创建和引用

 

   

vs2013 dll 文件的创建和引用

 

本人小白,大牛勿喷,内容不深刻,仅仅是关于dll的创建个引用,例子也很简单,只为了说明一些不太容易看清而被忽视导致错误的问题.

      前几天做了个加密算法的封装dll,找了好多教程,发现其实很简单的问题被说的有点不那么容易看懂,这里我就用自己最简单的语言说明这个问题。

建立

      首先,我们打开vs2013,依此点击文件-->新建-->项目-->win32控制台应用程序,起名myDll,确定,下一步,应用程序类型选择dll,默认点击完成(空项目和导出符号我们不选择),个人理解dll文件的书写比较类似于C++中的头文件,从左侧的解决方案中可以看见源文件中包括dllmain.cpp myDll.cpp 和stdafx.cpp三项,这里的dllmain .cpp 类似用C中的main函数,但是我的们的代码并不是在这个dllmain函数,他相当于一个入口和出口,当函数执行时首先进入这个dllmain函数中然后,执行完其他函数后再今天这个dllmain函数,我们需要自己定义的函数应该写在myDll.cpp中,如果dll中含有其他的头文件的话,需要在stdafx.h中进行声明。我这里写一个很简单的加和函数Add(int x ,int y);
?
1
2
3
4
5
6
7
8
// myDll.cpp : 定义 DLL 应用程序的导出函数。 
// 
   
#include "stdafx.h" 
_declspec (dllexport) int Add(int x, int y) 
    return (x+y); 

 

写完代码后,我们要查看这个dll是不是正确,在调试的左边有一个生成,点击生成,选择第一个生成解决方案,如果代码正确后就回显示生成成功,然后查看文件的地址中的debug你会发现生成了myDll.dll和myDll.lib,则说明我们dll是成功的。

调用

现在我们看看怎么调用写好的dll
同样我们需要写一个简单的测试函数,VS中文件--》新建--》项目--》win32控制台应用程序,起名为test_myDll确定,下一步,控制台应用程序,选择空项目。完成,这里我们用一个c语言程序进行调用,点击源文件新建一个cpp代码如下
?
1
2
3
4
5
6
7
8
9
#include <stdio.h> 
#pragma comment(lib, "myDll.lib")//调用dll文件时候必须用到的 
int Add(int x, int y);          //对刚才写好的Add函数进行声明 
//主函数 
int main() 
    printf("%d\n",Add(4,5)); 
    return 0; 

 

写好代码后选择调试左边的生成,生成解决方案,输出框中会提示无法打开myDll.lib,这是因为我们没有把写好Dll文件拷贝到这个程序的debug中,就会出现路径不明。这样我们在吧myDll拷贝到测试函数的debug中,拷贝完成后,再次生成解决方案,这样依然无法打开myDll.lib,这是因为我们拷贝了但是没有声明,右键左边生成方案下面的test_myDll,点击最下面的属性,选择vc++目录,找出你的测试函数的debug目录,拷贝到库函数的最前面,E:\code\VS\dll\test_myDll\Debug;不过记着要带分好,。完成后再次生成 解决方案,现在就会成功,然后选择调试,点击开始执行(不调试)就会出现我们Add(4,5)的结果 9 。

这就是dll的建立和调用的简单过程,希望对您有帮助,如果发现那里有问题,请您指正,感激不尽!!!