DLL教程

您所在的位置:网站首页 fcpx工程文件缺少文件 DLL教程

DLL教程

2024-07-16 23:26| 来源: 网络整理| 查看: 265

参考文章:DLL教程 - 如何编写动态链接库 DLL_生成dll库-CSDN博客

1、编写DLL 1.1 创建DLL

这里取名DynamicLibrary

生成项目:

1.3 组织文件

创建一个新的 DLL 项目时,通常会自动生成一些预编译头文件和其他文件,这些文件的作用是帮助加快编译速度和提高代码组织结构。然而,并不是所有的预编译文件都是必需的,有时候可以根据项目需求删除一些不需要的文件。

pch.h: 这是预编译头文件,用于包含需要在整个项目中都可用的标准头文件,以及经常使用但很少更改的自定义头文件。如果你决定不使用预编译头文件,可以将其删除。

pch.cpp: 这是预编译源文件,用于编译预编译头文件。如果不使用预编译头文件,也可以将其删除。

framework.h: 这个文件通常包含一些项目中经常使用的标准头文件,类似于 pch.h,但是它不是预编译头文件。如果你不需要这样的文件,也可以删除它。

dllmain.cpp: 这是 DLL 的入口函数文件,包含了 DLL 的入口函数 DllMain。通常建议保留这个文件,因为 DllMain 函数是 DLL 的主要入口点,负责处理 DLL 的初始化和清理工作。

先在setting里面设置不使用预编译,然后删除预编译文件,见图3。本文只留dllmain.cpp

1.4 添加DLL的头文件和源文件

这里取名DynamicLibrary.h/DynamicLibrary.cpp

头文件:

#pragma once extern "C" int __declspec(dllexport) add(int a, int b);

源文件:

#include"DynamicLibrary.h" int add(int a, int b) { return a + b; } 1.5 编译程序生成DLL。

最后右键生成,默认会在\x64\Debug下生成DynamicLibrary.dll和DynamicLibrary.lib.

该lib文件不同于中的静态库文件,此lib文件只是dll文件中导出函数的声明和定位信息,并不包含函数的实现(而第一节中的静态库文件,包含了函数的实现),因此此lib文件只是在调用对应dll库的工程编译时使用,不需要随exe发布。

2、调用DLL 2.1 新建控制台项目

命名为DynamicLibraryLoader

2.2 添加代码源文件

DynamicLibraryLoader.cpp

#include #include typedef int (*lpAddFun)(int, int); // 定义函数指针类型 int main() { HINSTANCE hDll; // DLL 句柄 lpAddFun addFun; // 函数指针 hDll = LoadLibrary(L"DynamicLibrary.dll"); // 动态获取dll文件的路径 if (hDll != nullptr) { addFun = (lpAddFun)GetProcAddress(hDll, "add"); // 根据函数名在dll文件中获取该函数的地址 if (addFun != nullptr) { int result = addFun(2, 3); printf("2 + 3 = %d\n", result); } else { std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3