C++调用dll文件步骤

一、基本知识

1、DLL是一个包含可由多个程序同时使用的代码和数据的库。使用dll可以提高代码的复用率,简化部署与安装。

二、使用方法

使用封装好的dll文件有两种方式,一种需要lib库;另一种不需要lib库,使用反射获取dll。分别为加载时动态链接和运行时动态链接。

1、加载时动态链接

在加载时动态链接中,应用程序像调用本地函数一样对导出的DLL函数进行显示调用。要使用加载时动态链接,需要在编译和链接应用程序时提供头文件和导入库文件(.lib)。

2、运行时动态链接

在运行时动态链接中,应用程序调用LoadLibrary函数或LoadLibraryEx函数以在运行时加载DLL。成功加载DLL后,可以使用GetProcAddress函数获得要调用的导出的DLL函数的地址。在使用运行时动态链接时,不需要使用导入库文件。

以调用以下三个文件为例:

方法一:加载时动态链接

1、将.dll文件、.lib文件、.h文件拷贝到目标工程的目录下

2、在目标工程下设置对应的lib库目录

在头文件"CSCInterface.h"中声明接口函数:

  1. int __stdcall GetCSCInterfaceVersion(char *version);
  2. bool __stdcall OpenGuideLight();

将CSCInterface.h文件添加 .cpp文件即可使用

#include "CSCInterface.h"

3、在此基础上加载时动态链接还有以下方式,直接在.cpp文件下使用

  1. using namespace std;
  2. #pragma comment(lib,"..\\release\\CSCInterface.lib")
  3. extern "C" _declspec(dllimport) int GetCSCInterfaceVersion(char *version);
  4. extern "C" _declspec(dllimport) bool OpenGuideLight();

参考:https://www.jianshu.com/p/29ffeb66042e

三、解决调用dll文件时出现“无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。”问题

首先打开菜单 项目->项目属性页 
1、选择 配置属性->链接器->调试->生成调试信息 改为 是 


2、选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI)


3、选择 配置属性->C/C++ ->优化->优化 改为 已禁用(/Od)

 

(0)

相关推荐