本文使用Visual Studio 2017, 通过win32控制台应用程序调用dll文件。
0. 新建工程
① 新建工程: 文件 -> 新建 -> 项目, 模板 -> VisualC++ -> Win32 控制台应用程序 -> 确定。应用程序向导配置如下:

② 在源文件中添加新建项创建main.cpp(解决方案资源管理器 -> 项目 -> 源文件 -> 右键添加新建项 -> VisualC++ -> C++文件)
③ 配置管理器中的平台需要和dll的位数保持一致(x86,x64)。
1. 静态调用
main.cpp 文件内容如下
#include <iostream>
void say_hello(); // 没有给出头文件,需要在此声明函数
int main()
{
say_hello();
return 0;
}
将生成的动态链接库dll,静态库lib,头文件h放到工程目录下
配置属性 -> C/C++ -> 常规 -> 附加包含目录 -> 编辑, 填写dll,lib,h所在的绝对路径或者相对路径。


配置属性 -> 链接器 -> 常规 -> 附加库目录 -> 编辑, 填写dll,lib,h所在的绝对路径或者相对路径。

配置属性 -> 链接器 -> 输入 -> 附加依赖项 -> 编辑, 填写lib文件的名称。

将dll文件复制到生成的可执行文件目录下

生成 -> 生成解决方案

调试->开始执行(不调试)

2. 动态调用
动态调用无需配置目录,链接器等信息。
只需要将dll与生成的可执行文件放在同一个文件夹下即可(或者将目录信息也加入LoadLibrary的参数中)
main.cpp 文件内容如下
#include <iostream>
#include <wtypes.h>
#include <Tchar.h>
// 定义函数指针
void (* say_hello)(void);
int main()
{
// 加载 动态链接库
HINSTANCE hInst = LoadLibrary(_T("say_hello.dll"));
// 获取函数
(FARPROC&)say_hello = GetProcAddress(hInst, "say_hello");
// 运行函数
say_hello();
// 释放DLL
FreeLibrary(hInst);
return 0;
}

本文介绍了使用Visual Studio 2017,通过win32控制台应用程序调用dll文件的方法。包括新建工程的步骤,以及静态调用和动态调用的具体操作,如静态调用需配置目录和链接器等信息,动态调用则只需将dll与可执行文件放同一文件夹。

3207

被折叠的 条评论
为什么被折叠?



