1、创建动态链接库(DLL)demo流程
(1)新建项目

(2)确定项目框架和名称

(3)应用程序导向,下一步
(4)设置应用程序类型(DLL类型,空项目),完成项目建设
(5)在项目中添加头文件和源文件

(6)头文件定义导出函数信息
(7)源文件为导出接口函数的实现
(8)编译生成DLL文件
(9)生成的DLL文件所在位置
2、创建调用实例流程
注:为了开发调试方便,创建的调用DLL接口的C++项目与DLL项目同目录
(1)新建项目
(2)确定控制台类型和项目名称
(3)应用程序向导,下一步
(4)设置应用程序类型,控制台应用程序,空项目
(5)完成时同目录将多出一个C++项目,在项目中添加一个源文件
(6)在源文件中添加DLL对应函数接口的相关调用信息实现调用,具体如图
注:调用函数时,项目应设置为启动项,否则会出现一下问题
(7)附文件代码:
1)DLL项目中的文件:
test.h文件
#ifndef DLLEXPORT_EXPORTS
#define DLLEXPORT_API __declspec(dllexport)
#else
#define DLLEXPORT_API __declspec(dllimport)
#endif
#include<iostream>
#include<fstream>
#include<Windows.h>
//函数定义导出接口函数
EXTERN_C DLLEXPORT_API int add(int x, int y);
test.cpp文件
#include "test.h"
int add(int x, int y)
{
return x+y;
}
2)调用DLL的C++项目文件
main_test.cpp文件
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
//声明定义动态链接库(dll)对应函数的别名
typedef int(*fadd)(int x, int y);
int main() {
//导入动态链接库,根据dll所在位置进行导入
HINSTANCE hInst;
hInst = LoadLibrary(L"test.dll");
if (hInst == NULL) {
return -1;
}
//检索动态链接库(dll)中的函数接口
fadd pfadd = (fadd)GetProcAddress(hInst, "add");
if (pfadd == NULL) {
return -2;
}
//根据函数参数实现对应函数的调用
int x = 5;
int y = 10;
int z = 0;
z = pfadd(3,4);
cout << z << endl;
system("pause");
return 0;
}
版权声明:本文为qq_35373827原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。