UE插件开发引用包含第三方库头文件问题总结

简介: UE插件开发引用包含第三方库头文件问题总结

1.Windows平台类型冲突

INT,UINT,DWORD ,FLOAT,TRUE ,FALSE 宏冲突

#include "Windows/AllowWindowsPlatformTypes.h"
你的头文件
#include "Windows/HideWindowsPlatformTypes.h"

2.自增自减锁冲突

InterlockedIncrement,InterlockedDecrement类一些列锁冲突

#include "Windows/AllowWindowsPlatformAtomics.h"
你的头文件
#include "Windows/HideWindowsPlatformAtomics.h"

3.第三方库引起的警告

THIRD_PARTY_INCLUDES_START
你的头文件
THIRD_PARTY_INCLUDES_END

以上部分可以合并在一起,写成:

#if PLATFORM_WINDOWS
#include "Windows/AllowWindowsPlatformTypes.h"
#include "Windows/AllowWindowsPlatformAtomics.h"
THIRD_PARTY_INCLUDES_START
你的头文件
THIRD_PARTY_INCLUDES_END
#include "Windows/HideWindowsPlatformAtomics.h"
#include "Windows/HideWindowsPlatformTypes.h"
#endif

4.宏重定义的问题

CONSTEXPR,check,dynamic_cast,PI四个宏会出现重定义的问题,在包含头文件前使其无效化,然后恢复有效化就行了。

#if PLATFORM_WINDOWS
#pragma push_macro("CONSTEXPR")
#undef CONSTEXPR
#pragma push_macro("check")
#undef check
#pragma push_macro("dynamic_cast")
#undef dynamic_cast
#pragma push_macro("PI")
#undef PI
你的头文件
#pragma pop_macro("PI")
#pragma pop_macro("check")
#pragma pop_macro("dynamic_cast")
#pragma pop_macro("CONSTEXPR")
#endif
相关文章
|
2月前
|
编译器 API C++
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
【C++ 动态库设计】动态库中的模板函数:解决如果将模板函数封装成API库
50 0
|
2月前
|
存储 缓存 Unix
Cmake 链接外部库:如何在项目中使用外部库和头文件
Cmake 链接外部库:如何在项目中使用外部库和头文件
40 0
|
5月前
|
算法 关系型数据库 编译器
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(一)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
71 0
|
5月前
|
C++
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目(二)
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
45 0
|
5月前
|
前端开发 小程序 PHP
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。 大概有两种方式: 1:框架目录下引入(不推荐) 在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php 在autoload.php文件中引入。 这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。 2:在app目录下引入 在bootstrap目录下新建常量文件
29 0
|
11月前
|
JSON 数据格式 Python
24.从入门到精通:__name__属性 dir() 函数 标准模块 包 从一个包中导入*
24.从入门到精通:__name__属性 dir() 函数 标准模块 包 从一个包中导入*
|
JSON 数据格式 Python
Python基础 模块化编程(模块的导入) 模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法
python基础知识模块,模块化编程,模块的创建和导入 python基础,模块的创建和导入,让模块以主程序的方式运行,python中的包和目录的区别和创建。模块导入另一个包的模块的方法,导入带有包的模块时的注意事项,常见的内置模块。 第三方模块的安装和导入的方法
Python基础 模块化编程(模块的导入)   模块化编程 模块以主程序的方式运行 包和目录 第三方库的安装和导入方法
|
计算机视觉
Qt实用技巧:win将ffmpeg、opengl、osg等各种库封装成qt模块,运行需要dll,增加自动拷贝运行库到exe目录执行脚本
Qt实用技巧:win将ffmpeg、opengl、osg等各种库封装成qt模块,运行需要dll,增加自动拷贝运行库到exe目录执行脚本
|
编译器 C++ 芯片
STM32F103标准库工程模板创建
stm32F103ZET6基于标准库的工程创建,网上资料大多提供移植好的工程模板,对于有经验的嵌入式软件开发者来说可以提高开发效率,可是对于初学者来说,忽略了很多移植细节,本文从无到有创建一个标准库的开发模板,帮助初学者,掌握stm系列基础工程模板创建。
838 0
STM32F103标准库工程模板创建