您的位置:首页 > 其它

VS2013编写和调用动态链接库

2016-11-02 09:38 288 查看
本文主要是在参考文章的前提下进行完善,参考文章网址为:

http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29121609&id=3851844

本人小白一枚,VS2013这个IDE基本不了解,计算机原理之类的课程也没有学过,但为了用VS2013编写和调用动态链接库,查阅了很多博客,上面这一篇是我觉得比较好的,但就算我一步一步按照上述文章的步骤来进行,还是差一步,所以果断拿出来与大家分享!

小白在此郑重说明,我不懂里面的程序如何编写,我只是提供给大家一个流程性质的解决方案,如果涉及到上述文章的引用问题,我会删除,感谢前辈们为我们做的贡献!

 

一、创建动态链接库项目:

1、打开Microsoft VisualStudio 2013,选择:文件->新建->项目。

2、在 ”新建项目” 中选择:模板>VisualC++->Win32。

3、选择 ”Win32控制台应用程序”,名称:simpledll,设置解决方案名:zdddll。

4、单击 ”确定” ,在出现的Win32应用程序向导的对话框中点击 ”下一步” 。

5、在 ”应用程序设置” 中,选择 ”应用程序类型” 下的DLL。

6、勾选 ”附加选项” 下的 ”空项目” 。

7、单击 ”完成” 创建项目。

 

向动态链接库添加类:

1、添加新类头文件。右键单击simpledll项目,添加->新建项目,选择 “头文件(.h)”,设置名称为simpledll.h,单击 “添加”。

2、添加新类源文件。右键单击simpledll项目,添加->新建项目,选择 ”C++ 文件(.cpp)”,设置名称为 “simpledll.cpp”,单击 ”添加”。

3、为新类添加内容。内容如下:

头文件simpledll.h:

//------------------ simpledll.h----------------

#pragma once;

//该宏完成在dll项目内部使用__declspec(dllexport)导出

//在dll项目外部使用时,用__declspec(dllimport)导入

//宏DLL_IMPLEMENT在simpledll.cpp中定义

#ifdef DLL_IMPLEMENT

#define DLL_API __declspec(dllexport)

#else

#define DLL_API __declspec(dllimport)

#endif

namespace zdd

{

//导出类

class DLL_API SimpleDll

{

public:

SimpleDll();

~SimpleDll();

int add(int x, int y); //简单方法

};

}

 

源文件simpledll.cpp:

//------------------ simpledll.cpp----------------

//注意此处的宏定义需要写在#include"simpledll.h"之前

//以完成在dll项目内部使用__declspec(dllexport)导出

//在dll项目外部使用时,用__declspec(dllimport)导入

#define DLL_IMPLEMENT

#include "simpledll.h"

namespace zdd

{

SimpleDll::SimpleDll()

{

}

SimpleDll::~SimpleDll()

{

}

int SimpleDll::add(int x, int y)

{

return x+y;

}

}

4、完成后点击 “生成->生成解决方案” 或者 右键单击simpledll项目,然后选择”生成”。可在 zdddll\Debug下查看生成的simpledll.lib和simpledll.dll.文件。在Debug的调试模式下,一共生成5个文件。如果你也生成了,那么恭喜你,创建动态链接库已经成功。

 

二、创建引用动态链接库的应用程序:

1、在 ”解决方案资源管理器” 的引导栏中 右击”解决方案”zdddll””,然后选择: 添加->新建项目。

2、在 ”添加新项目” 中选择:VisualC++->Win32-> Win32控制台应用程序,设置名称:usesimpledll,选择”确定”

3、在出现的 ”Win32 应用程序向导” 的对话框中点击 ”下一步”。

4、在 “应用程序设置” 中,选择 “应用程序类型” 下的 “控制台应用程序”。

5、在 “附加选项” 下,勾选 “空项目” 。

6、单击 “完成” 创建项目。

7、右击usesimpledll项目选择 ”设置为启动项目”.

 

在控制台应用程序中使用类库的功能:

1、为控制台应用程序添加main.cpp。右键单击usesimpledll项目,添加->新建项目,选择C++ 文件(.cpp),设置名称为main,单击 “添加” 。

2、为main.cpp添加内容。如下所示:

//------------------ main.cpp-------------------

#include "simpledll.h"

using namespace zdd;

#include <iostream>

using namespace std;

 

int main(char argc, char**argv)

{

         cout<< "----------------------" << endl;

         SimpleDll*psd = new SimpleDll;

         cout<< "psd->add: 5+5=" << psd->add(5, 5) <<endl;

         cout<< "psd->getConst(): " << endl;

         cout<< "----------------------" << endl;

         cout<< "please press Enter exit." << endl;

         getchar();

         return0;

}

3.在工程目录下建立include目录,将动态链接库的那个头文件(simpledll.h)拷入。建立lib目录,将Debu文件夹下生成的那个.lib文件拷入。然后将生成的.dll文件拷入生成.exe文件的那个目录(一般是项目下的Debug下)。如果你和我一样,将两个工程建立在同一个文件夹下面,那么他们将共用一个Debug文件夹,如果不是和我一样,而是你将两个工程建立在两个文件下面,那么就需要你复制粘贴以下.dll文件了。

4.接下来要配置工程,右击usesimpledll项目,选择 属性->配置属性->VC++目录->包含目录(单击倒”V”,选择”编辑”,然后找到刚刚新建的include文件夹路径)->库目录(和包含目录操作相同,但是这次不是找include文件夹路径,而是找lib文件夹路径)。接下来选择:链接器->输入->附加依赖项, 单击倒”V”,选择”编辑”,然后输入我们生成的lib文件的名字加.lib,这次输入是simpledll.lib,然后单击确定,这样整个工程就配置好了,运行即可成功。

 

总结

首先建立生成DLL的工程,生成.dll,.lib文件。需要用到的还有.h文件。

然后建立应用DLL的工程。要包含头文件,把3个文件拷入相应的目录。

在包含目录和库目录中添加.h和.lib的路径,同时在链接器的输入的附加依赖项中添加.lib文件的全称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vs2013动态链接库