- 时间:2020-04-28 04:59 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:C语言创建动态dll和调用dll(visual studio 2013环境下)
第一部分:创建动态dll库。
1、打开visual studio 创建一个控制台应用程序。
[img]http://files.jb51.net/file_images/article/201711/201711100947359.jpg[/img]
2、选择DLL,空项目。
[img]http://files.jb51.net/file_images/article/201711/2017111009473510.jpg[/img]
3、点击源文件,创建一个main.c文件
[img]http://files.jb51.net/file_images/article/201711/2017111009473511.jpg[/img]
4、在main.c中写入一个简单的函数,内容如下:
__declspec(dllexport)
int mymax(int a,int b){
return a + b;
}
[img]http://files.jb51.net/file_images/article/201711/2017111009473512.jpg[/img]
5、编译生成。
[img]http://files.jb51.net/file_images/article/201711/2017111009473613.jpg[/img]
6、在项目的目录有dll和lib两个生成好的文件。
[img]http://files.jb51.net/file_images/article/201711/2017111009473614.jpg[/img]
[b]第二部分:在新建项目中使用dll。[/b]
7、新建一个c的控制台应用程序UseDll,把Dll.dll放入Debug目录下。
[img]http://files.jb51.net/file_images/article/201711/2017111009473615.jpg[/img]
8、把Dll.lib放入UserDll目录下。
[img]http://files.jb51.net/file_images/article/201711/2017111009473616.jpg[/img]
9、在UseDll项目中新建一个源文件use.c,代码如下:
#include<stdio.h>
#pragma comment(lib,"Dll.lib")
int mymax(int a,int b);
int main(){
printf("调用动态dll函数的结果:%d",mymax(5,6));
getchar();
return 0;
}
[img]http://files.jb51.net/file_images/article/201711/2017111009473617.jpg[/img]
10、运行结果如下
[img]http://files.jb51.net/file_images/article/201711/2017111009473618.jpg[/img]
[b]PS:vs2013调试程序时出现“计算机丢失.dll文件”[/b]
在VS环境下能够编译成功,但是在运行.exe文件时,出现“计算机丢失xxx.dll文件”的提示的解决方式。
发生这种问题的根本原因在于环境变量的设置上,计算机只会在path下包含的目录里去寻找程序所要运行的.dll文件,若我们所要使用到的.dll文件没有包含在环境变量path中,则会发生错误:计算机丢失xxx.dll文件。
[b]工具/原料[/b]
[list=1]
[*]VS2013或者其他版本[/*]
[*]VTK库或者其他库[/*]
[/list]
[b]方法/步骤[/b]
这里以丢失vtkIOPLY-7.0-gd.dll文件为例(主要是关于PCL1.8.0),找到VTK的安装目录下的bin文件夹(包含vtkIOPLY-7.0-gd.dll),我的bin文件夹是在C:\Program Files (x86)\PCL 1.8.0\3rdParty\VTK\bin
将上述目录添加到环境变量Path中,如下图所示
[img]http://files.jb51.net/file_images/article/201711/2017111095017657.png?2017101095027[/img]
重新开启项目,重新生成解决方案,则问题就会解决
注意事项
这里不仅仅是针对vtkIOPLY-7.0-gd.dll文件,任何丢失.dll文件都可以使用此方式解决
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。