vs2017创建c++动态库工程
开发环境:VS2017、WIN10。
1、vs2017动态库工程创建
文件->新建->项目。新建项目页面中选择,Visual C++->Windows桌面,选择右侧的空工程,添加名称及位置,点击"确定",创建工程。

解决方案平台选:Debug, x64。注意:发布时,选择Release模式。

菜单栏上,项目->属性,进入属性页管理。配置属性->常规,配置类型改为"动态库(.dll)",点击应用、确定。完成工程配置。选择应用后,目标文件扩展名自动变为".dll"。

2、导出函数
添加MyDLL.h头文件、MyDLL.cpp源文件。
MyDLL.cpp中:
#include "MyDLL.h" // 引用头文件
int add(int a, int b)
{
return a + b;
}
MyDLL.h中:
#pragma once
#include <iostream>
using namespace std;
#define DLLEXPORT __declspec(dllexport)
extern "C" // C风格导出函数
{
DLLEXPORT int add(int a, int b); // 导出函数前加宏DLLEXPORT
}
编写完后,运行生成项目解决方案,即可在工程目录下生成对应的DLL及LIB。

3、动态库验证
动态库工程本身无法运行。添加main.cpp,对动态库中导出函数进行调用验证。动态库工程中新建main.cpp。添加验证:
#include "MyDLL.h"
#include <iostream>
using namespace std;
int main()
{
int sum = add(1, 2);
cout<< "1 + 2 = " << sum << endl;
return 0;
}
项目->配置属性->常规中,配置输出类型为"应用程序(.exe)",确定。以应用程序的方式调用接口测试。

运行,结果如下:

PS:测试完后,要更新动态库时,需将配置类型改回"动态库(.dll)"。
4、动态库调用
新建空工程"DLL1_CALL",添加main.cpp,在其中调用动态库。
main.cpp中内容如下:
#include "MyDLL.h"
#include <iostream>
using namespace std;
int main()
{
int sum = add(1, 2);
cout << "1 + 2 = " << sum << endl;
return 0;
}
接下来,执行下面步骤,实现动态库引用:
step1、拷贝动态库头文件MyDLL.h至当前工程,并在当前工程添加;
step2、属性页配置:
1、调试->环境,配置环境变量(DLL1.dll 的搜索路径):
PATH=E:\demo\DLL1\x64\Debug;$(PATH)
2、vc++目录,配置包含目录(MyDLL.h 的搜索路径)和库目录(DLL1.lib 的搜索路径):
头文件拷贝,则不需要配置包含目录;
库目录,配置为:E:\demo\DLL1\x64\Debug。
3、链接器->输入->附加依赖项,配置中添加:DLL1.lib。
最后,运行:

PS:简答的验证,可以使用denpends查看输出函数是否正确。
更多推荐



所有评论(0)