首先写一个第三方库
.h
- #pragma once
- #ifndef __MYTEST_LIB_H__
- #define __MYTEST_LIB_H__
- #include <string>
- #include <iostream>
- int Addd(int a, int b);
- #endif
- #include "stdafx.h"
- #include "MyDll.h"
- int Addd(int a, int b)
- { return a + b; }
第一种,项目调用:
和Source同级目录下建个ThirdParty文件夹,在ThirdParty下再新建Includes和Libs文件夹,把上面的.h丢进Includes,lib丢进Libs
然后在项目Build.cs下添加:
- using System.IO;
- private string ModulePath
- {
- get{ return ModuleDirectory; }//return Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name));
- }
- private string ThirdPartyPath
- {
- get { return Path.GetFullPath(Path.Combine(ModulePath, "../../ThirdParty/")); }
- }
- // PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "Includes"));
- / PublicAdditionalLibraries.Add(Path.Combine(ThirdPartyPath, "Libs", "XXX.lib"));
第二种,插件调用:
同样在插件Source同级下新建ThirdParty文件夹,在ThirdParty下多一层MyTestLib文件夹,再往下新建Includes和Libs文件夹,把上面的.h丢进Includes,lib丢进Libs
扫描二维码关注公众号,回复:
1508690 查看本文章
然后在插件Build.cs下添加:
- using System.IO;
- private string ModulePath //第三方库
- {
- // get { return Path.GetDirectoryName(RulesCompiler.GetModuleFilename(this.GetType().Name)); }
- get { return ModuleDirectory; }
- }
- private string ThirdPartyPath//第三方库
- {
- get { return Path.GetFullPath(Path.Combine(ModulePath, "../../ThirdParty/")); }
- }
- private string MyLibPath //第三方库MyTestLib的目录
- {
- get { return Path.GetFullPath(Path.Combine(ThirdPartyPath, "MyTestLib")); }
- }
- public bool LoadThirdPartyLib(TargetInfo Target)
- {
- bool isLibrarySupported = false;
- if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))//平台判断
- {
- isLibrarySupported = true;
- System.Console.WriteLine("----- isLibrarySupported true");
- string LibrariesPath = Path.Combine(MyLibPath, "Libs");
- PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, "MyThirdParty.lib"));//加载第三方静态库.lib
- }
- if (isLibrarySupported) //成功加载库的情况下,包含第三方库的头文件
- {
- // Include path
- System.Console.WriteLine("----- PublicIncludePaths.Add true");
- PublicIncludePaths.Add(Path.Combine(MyLibPath, "Includes"));
- }
- return isLibrarySupported;
- }
下面是分享的代码http://download.csdn.net/detail/u014532636/9853272
参考:
https://blog.csdn.net/lunweiwangxi3/article/details/50468593
http://blog.csdn.net/Szu_IT_Man/article/details/58232638
http://blog.csdn.net/yangxuan0261/article/details/52098104
http://blog.csdn.net/lunweiwangxi3/article/details/48373033
加载DLL参考:
http://blog.csdn.net/baidu_27276201/article/details/75675836?locationNum=2&fps=1
https://wiki.unrealengine.com/Linking_Dlls
http://blog.csdn.net/szu_it_man/article/details/58232638#引用dll