VS2013编写一个DLL,并创建EXE对DLL进行调用


一、创建DLL项目

        文件->新建->项目->Visual C++  win32控制台程序(填写项目名makeDLL)->下一步->(应用程序设计)勾选:DLL、导出符号->完成

二、项目自动生成DLL模板

        

makeDLL.h
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 MAKEDLL_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// MAKEDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef MAKEDLL_EXPORTS
#define MAKEDLL_API __declspec(dllexport)
#else
#define MAKEDLL_API __declspec(dllimport)
#endif

// 此类是从 makeDLL.dll 导出的
class MAKEDLL_API CmakeDLL {
public:
CmakeDLL(void);
// TODO: 在此添加您的方法。
};

extern MAKEDLL_API int nmakeDLL;

MAKEDLL_API int fnmakeDLL(void);
// makeDLL.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include "makeDLL.h"// 这是导出变量的一个示例MAKEDLL_API int nmakeDLL=0;// 这是导出函数的一个示例。MAKEDLL_API int fnmakeDLL(void){return 42;}// 这是已导出类的构造函数。// 有关类定义的信息,请参阅 makeDLL.hCmakeDLL::CmakeDLL(){return;}

在makeDLL.h中声明要被调用的函数

MAKEDLL_API int Add(int a, int b);

在makeDLL.cpp中实现要被调用的函数

MAKEDLL_API int Add(int a, int b)
{
return a + b;
}

三、生成项目,在Debug中生成的文件如下


四、创建要使用DLL的EXE项目

        文件->新建-> 项目->Visual C++ win32控制台应用程序(填写项目名testDLL)->一路下一步.....

五、引入DLL

        1、将makeDLL.h、makeDLL.lib放入testDLL文件夹

        2、在资源管理器处,项目名称上右键,点开最下面属性页,选择C/C++->常规->附加包含目录,写入makeDLL.h文件的路径



         3、同样方法,进入属性页,选择  链接器->常规->附加库目录,写入makeDLL.lib 文件路径


           4、项目testDLL生成,出现Debug文件夹,将makeDLL.dll文件拷贝进Debug文件夹


         5、在testDLL.cpp文件中,对DLL中函数进行调用

               #pragma是一条编译器指令,告诉编译器要链接一些东西,在comment里指明是什么

#include "stdafx.h"
#include<iostream>

#include "makeDLL.h"
#pragma comment(lib,"makeDLL.lib") //指定与静态库一起链接,手动包含(标题3所示)之后可以省略

int _tmain(int argc, _TCHAR* argv[])
{
int a, b, c;
std::cin >> a >> b;
c = fnmakeDLL(a, b);
std::cout << c << std::endl;
system("pause");
return 0;
}

        6、运行结果显示


智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告