昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心
一.如果你想要自己用C++编译第三方库,动态库,那么先看这篇文章,否则跳过
C++编译动态库第三方库及使用:点此连接
或点这里:https://blog.csdn.net/lunweiwangxi3/article/details/87184775
二.已有第三方库,想做成UE4插件,那么看下面连接
UE4中使用第三方库Ⅱ : 点此连接
或者点这里:https://blog.csdn.net/lunweiwangxi3/article/details/83187840
三.小时候的故事
1.我对动态库是逃避的,当初弄成库,是因为在逃避另一个无法逃避的问题,没错,DWORD类型冲突了,一个是C++ std标准库定义,另一个是UE4的定义,两个大佬一个都不好惹。当时的做法是做成一个动态库,因为,动态库,能绕过重定义这个问题。事实证明,确实可行,库的一大优势!
类型冲突时候的解决方法:UE4中,屏蔽系统库,最后再解除屏蔽,具体做法如下:
//ue4的头文件
#include "AllowWindowsPlatformTypes.h"
#include... //冲突的第三方头文件
#include "HideWindowsPlatformTypes.h"
2.一定要注意库是Debug模式下的,还是Release模式下的,分别对应32位操作系统还是64位操作系统。第三方库一定要和虚幻4的模式对应。
3.UE4中虽然也可以像纯C++项目那样添加 项目->属性->配置属性,添加包含目录,库目录 #pragma comment(lib,"MyDLL.lib ") 这样添加库,并且编辑器中运行也OK的,但是打包就废了。要在对应的Build.cs文件中添加头文件,库等。
4.逃避是最大的敌人,静下心来耐心分析每一行乱码,相信很快,就能成为考古学家了