C/C++动态链接库dll创建与调用

2018-02-27 10:53:00来源:oschina作者:LoSingSang人点击

分享

从上篇博文大家已经了解了静态链接库lib的使用方法,这篇将介绍动态链接库dll的创建和调用方法。


学习静态链接库lib传送门


那么我们开始吧!


以下实验为Visual C++ 6.0环境


1.如图设置,确定,一路默认



2.在.h和.cpp文件中添加如下图所示代码,代码为:


//MFC_dll.h
//声明导出函数,extern "C"_declspec(dllexport)2017.11.19 14:08--LGL
extern "C"_declspec(dllexport) int add(int x,int y);
//MFC_dll.cpp
//实现导出函数,extern "C"_declspec(dllexport)2017.11.19 14:08--LGL
extern "C" __declspec(dllexport) add(int x,int y){
printf("123456:");
return (x+y);
}
/*
编译后在debug文件夹下的.dll和.lib,以及工程目录下的.h头文件,放到新的工程目录下
*/



3.编译,在debug文件夹下的.dll、.lib和工程目录下的.h文件是我们所需要的,以上动态链接库dll就创建完成了。


4.新建32控制台程序,创建.h和.cpp文件,把刚才的.dll、.lib和.h文件放到该控制台工程目录下。


5.在刚才创建.h和.cpp文件,输入如下图代码,代码为:


//test.h
#pragma comment(lib,"MFC_dll.lib") //包含lib
extern "C" _declspec(dllimport) int add(int a,int b); //声明导入函数,extern "C" _declspec(dllimport)
//test.cpp
#include
#include "test.h" //头文件
int main()
{
printf("%d/n",add(10,3)); //直接调用
getchar();
return 0;
}



6.编译,运行,如下如


以上,就是动态链接库dll的创建与调用方法。需要注意的是,当.exe应用程序运行时无论是在debug还是release下,该程序目录下都需要有我们刚刚创建的.dll文件,否则出现如下图提示丢失.dll,下图为在发布版release模式下打开.exe文件:



此时,需要把工程目录下的.dll文件,复制到该.exe程序所在的目录下,这样运行才不会出错,如下图:


有关动态链接库的使用方法及注意事项就到这里。


测试文件打包:动态库dll测试

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台