UE4学习笔记:Windows系统下如何在C++项目里调用第三方动态库
本随笔介绍在Windows系统下,由UE4引擎创建的C++项目里如何实现调用第三方动态库的方法。
作者还在学习阶段,并且对UE4引擎的使用和理解还不是非常透彻,难免会在随笔内容里出现技术上和书写上的问题,如果出现了类似的问题欢迎在评论区或者私信讨论。
UE4C++项目是由一个个的模块组成,每一个模块就是一组函数、变量和类等代码的集合,模块除了包含头文件和源文件以外,还包含了被称为模块构建文件的以模块名字命名,以.Build.cs结尾的文件,该文件的作用就是定义该模块与其他模块是如何进行协作的,其中也包括如何调用第三方库。
设置第三方库头文件的路径
PublicIncludePaths.Add("IncludePath");
变量PublicIncludePaths
是一个C#的字符串列表,只需要用该变量的Add
方法第三方库头文件所在的文件夹路径添加到这个变量里面,就可让该模块查找到第三方库的头文件,字符串"IncludePath"
指定了头文件所在文件夹的路径,该路径可为绝对路径或相对路径,如果为相对路径,那起始文件夹为源代码文件夹(即在项目里生成的被命名为“Source”的文件夹)。
设置第三方库导入库的路径
PublicAdditionalLibraries.Add("AbsoluteImportLibraryPath/ImportLibraryName.lib);
变量PublicAdditionalLibraries
是一个C#的字符串列表,只需要用该变量的Add
方法将第三方库导入库所在的文件夹路径添加到这个变量里面,就可让该模块查找到第三方库的导入库文件,字符串"AbsoluteImportLibraryPath/ImportLibrary.lib"
指定了导入库文件的绝对路径,该路径不能为相对路径。
设置第三方库动态库的路径
RuntimeDependencies.Add(AbsoluteTargetDirectoryPath, "AbsoluteDLLFilePath/DLLFileName.dll");
变量RuntimeDependencies
是一个自定义的变量类型,用该变量的Add
方法每次添加路径的时候接受两个字符串参数,第一个字符串参数AbsoluteTargetDirectoryPath
指定了需要将动态库文件复制到哪个文件夹内,一般来说将该参数设置为字符串"$(BinaryOutputDir)"
即可。第二个字符串"AbsoluteDLLFilePath/DLLFileName.dll"
指定了动态库文件所在的路径,这两个路径都必须是绝对路径。这个语句实际上执行的操作就是将第三方动态库文件复制到该模块编译好的动态库文件的同级目录下,这样在加载该模块的时候可以同时加载第三方库的动态库文件。
原文地址:https://www.cnblogs.com/u-n-owen/p/15129758.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- css的linear-gradient
- 第十届山东省赛L题Median(floyd传递闭包)+ poj1975 (昨晚的课程总结错了,什么就出度出度,那应该是叫讨论一个元素与其余的关系)
- css中border-radius
- css的border-radius注意点
- js的join split startsWith endsWith
- 详解length charAt indexOf lastIndexOf includes concat slice substring substr详解
- sort实现
- border-radius
- USACO Training Section 1.1黑色星期五Friday the Thirteenth
- background-clip默认从border开始的哈
- background-origin默认从padding-box开始的哈
- USACO Training Section 1.1 坏掉的项链Broken Necklace
- 简易通讯录类实现原理
- 盒子模型box-sizing属性的用法
- JeecgBoot配置及前后端分离HelloWorld项目