99国产欧美另娄久久久精品_国内自拍农村少妇在线观看_久久亚洲道色宗和久久_日本aⅴ大伊香蕉精品视频_亚洲国产欧美日韩欧美特级_日本视频免费在线观看

  • 您的位置:首頁 > 新聞動態 > UE4

    虛幻UE4如何鏈接第三方庫(lib和dll)

    2018/3/20??????點擊:
    摘要:寫這個文章主要是被UE官方的wiki和answerhub誤導了很久,這本來是一個很常見和基本的問題,但是無論是官方的wiki或者是論壇上的提問都十分散亂并且充斥各種錯誤,因此記錄下這個在開發中時常遇到的問題。
    在開發中經常遇到的問題就是加入某第三方庫的支持,這樣的第三方庫往往屬于無源碼,而且可能是靜態lib或者是動態dll甚至兩者皆有。UE4的編譯管理用的是自己的UBT(unreal binary tool)因此鏈接第三方庫的工作主要是編寫UBT腳本。
    1.以插件方式集成.
    基本上這個是*推薦的集成第三方庫的方式,因為能夠很好的隔離你的代碼和第三方代碼的影響,在UE4的源碼里也可以看到很多第三方庫都是這么集成的,比如paper2D,leapmotion等等。在UE4中新建插件的方式略去不表,當你新建完你的插件之后,你會在插件的代碼目錄下看到一個
    xxx.build.cs
    接下來要做的就是修改這個腳本:
    得到當前路徑
    1. private string ModulePath
    2. {
    3.    get { return ModuleDirectory; }
    4. }
    關于第三方庫放的位置,一般是在plugin的源碼同級文件夾下建一個ThirdParty文件夾,里面放上include lib等等
    。得到ThirdParty文件夾的路徑
    1. private string ThirdPartyPath
    2. {
    3.         get { return Path.GetFullPath(Path.Combine(ModulePath,"../../ThirdParty/")); }
    4. }
    為工程添加include第三方庫的頭文件路徑
    在模快的構造函數里加上:
    1. PublicIncludePaths.AddRange(
    2.         new string[] { 
    3.              Path.Combine(ThirdPartyPath, "xxx", "Include"),
    4.         }
    5.         );
    6.             
    7.  
    8. PrivateIncludePaths.AddRange(
    9.         new string[] {
    10.             Path.Combine(ThirdPartyPath, "Foxit", "Include"),
    11.         }
    12.         );
    鏈接第三方庫的Lib
    接下來需要在編譯工程時加入第三方靜態庫的鏈接,靜態鏈接屬于工程在編譯期間做的事情,因此這塊需要通過cs腳本完成,而dll動態鏈接庫的加載是運行期的事,因此需要在cpp文件中執行。
    我們新建一個叫LoadxxxLib的函數,并把它放在模塊的構造函數結尾執行:
    1. public bool LoadxxxLib(TargetInfo Target)
    2.     {
    3.         bool isLibararySupported = false;
    4.         if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
    5.         {
    6.             isLibararySupported = true;
    7.             string PlatformString = (Target.Platform == UnrealTargetPlatform.Win64) ? "Win64" : "Win32";
    8.             PublicAdditionalLibraries.Add(Path.Combine(LibraryPath, PlatformString + ".lib"));
    9.             PublicDelayLoadDLLs.Add(PlatformString + ".dll");
    10.             RuntimeDependencies.Add(new RuntimeDependency(LibraryPath + PlatformString + ".dll"));
    11.         }
    12.         return isLibararySupported;
    13.     }

    這樣就可以保證在編譯期鏈接上我們的第三方lib。


    鏈接動態DLL
    這個工作需要在plugin的運行期完成,在插件的source文件下找到一個與插件名字同名的cpp文件打開。會看到一個StartupModule的函數,我們需要在這里得到dll文件的handle。

    在StartupModule中添加下面的代碼:

    1. void FXXXModule::StartupModule()
    2. {
    3. #if PLATFORM_64BITS
    4.     FString platform = TEXT("win64.dll");
    5. #else
    6.     FString platform = TEXT("win32.dll");
    7. #endif
    8.     FString path = IPluginManager::Get().FindPlugin("XXX")->GetBaseDir(); 
    9.     FString dllpath = path + "/ThirdParty/XXX/Lib/" + platform;
    10.     PdfDllHandle = FPlatformProcess::GetDllHandle(*dllpath);
    11.     if (!PdfDllHandle)
    12.     {
    13.         UE_LOG(LogTemp, Warning, TEXT("Failed to load PDF library."));
    14.     }
    15. }
    這里我們用的是PluginManager找到的插件所在的路徑,值得注意的是使用這個函數時需要在build.cs中加入
    1. PrivateDependencyModuleNames.AddRange(
    2.             new string[]
    3.             {
    4.                 ...
    5.                 "Projects",
    6.             }
    7.             );

    否則工程會鏈接出錯。


    主站蜘蛛池模板: 亚洲国产日韩美_国产中文字幕视频_九九99热_欧美人与禽交片mp4_精品日韩在线一区_国产精品久久久久久久久无码Aⅴ_av无码天一区二区一三区_明星一级毛片 | 国产成人在线观看网站_久热RE这里精品视频在线6_鲁大师在线影院免费观看_狠狠综合亚洲综合亚洲色_久久中文字幕亚洲精品最新_亚洲欧美综合_亚洲AV无码日韩AV无码网站冲_特黄一级性片看 | 久久丫精品国产免费_黑人狂躁日本妞一区二区三区_男人午夜网站_成人高清在线视频_精品一区在线免费观看_8mav精品成人_夜精品无码A片一区二区蜜桃_aⅴ色国产欧美 | 精品一区二区三卡四卡网站_欧美日韩视频在线观看一区_91色视频_国产成人精品亚洲日本在线桃色_好男人2019视频社区_97国产在线_熟女乱中文字幕熟女熟妇_妖精视频一区 | 毛片无码免费无码播放_欧美福利片在线观看_沦为公交两奶头春药高潮迭起_亚洲精品无码一区二区三区污_九色porny91_办公室高h荡肉呻吟在线观看_亚洲精品一卡二卡三卡四卡2021_中文字幕第31页 | 国产高清精品在线观看_亚洲欧美国产一区二区三区_欧美亚洲在线视频_人妻人人澡人人添人人爽_91剧场在线观看_欧洲乱码伦视频免费国产_撕开奶罩揉吮奶头免费视频_精品久久久久一区二区三区 | 满天神佛国语免费观看_jizz久久精品永久免费_天天干天天做_丰满老熟好大bbb_四虎最新在线_熟妇的奶头又大又长奶水视频_久久久www免费人成精品_亚洲精品国偷自产在线99人热 | 亚洲色图综合_尤物在线观看视频不卡无码_国产午夜精品在线_夜夜爽WWW_激情综合亚洲色婷婷五月_日韩人妻中文无码一区二区_网站免费在线观看入口满十八_亚洲国产精品久久久天堂不卡海量 | 久久网亚洲_亚洲成人午夜av_亚洲成人诱惑_9999热视频在线观看_国产高清精品软件_欧美性xxxx禁忌_啊灬啊灬啊灬啊高潮了_国产96在线 | 亚欧美无遮挡HD高清在线视频_日本一区二区免费在线播放_大肉大捧一进一出好爽视色大师_亚洲天堂福利视频_欧美成一区_国产CHINESEHDXXXX美女_97视频一二区_亚洲精品中字 | 久热国产精品视频_波萝蜜A毛黄AAA片_老师掀起裙子让我把j放进去视频_亚洲精品乱码久久久久膏_亚洲欧美一区二区三区_天天躁日日躁狠狠躁aab吃奶_美女又黄又免费视频_日韩无码系列综合区 | 91视频污免费_91九色成人_日本r级未删减在线观看_91青青在线视频_亚洲大胆视频_亚洲夜夜欢a∨一区二区三区_国产麻无矿码直接观看_欧美成年网站色a | 女人高潮的24种图片_av免费网站在线_777亚洲精品乱码久久久久久_免费又色又爽又黄的舒服软件_欧美一区2区视频在线观看_av大片在线无码免费_韩日一级片_逼逼综合网 | 欧美精品一区二区三区久久_国外b2b网站毛片_亚洲国产精品久久久久久69_久久91久久久久麻豆精品_日日爽夜夜操_91看片免费在线观看_51cao在线观看_国产九色在线 | 亚洲制服无码一区二区三区_视频丨9l丨白浆_欧美黑人XXXⅩ高潮交_欧美亚洲欧美_免费视频色_九九99九九精彩9_亚洲AV久久无码精品国产_怦然心动2在线观看免费高清 | 色婷婷五月综合亚洲影院_免费在线观看亚洲视频_欧美一级日韩一级无毒不卡_国产精品高潮在线_国产一区久久_狠狠操一区二区三区_亚洲国产精品无码久久久久久曰_美女黄色网址 | 宅男伊人_四虎2023_一级日韩一级欧美_人人做人人爽人人添_一本大道无码人妻精品专区_人妻少妇波多野结衣_偷偷做久久久久网站_丰满少妇2中文在线观看 | 国产又色又爽又黄的视频在线观看_成全免费高清观看在线电视_97国产一区_久久久免费_亚州综合一区_偷拍自拍视频在线_亚洲高清免费观看在线视频_无码无套少妇毛多69xxx | 少妇高潮水多太爽了动态图_少妇扒开双腿让我看个够_免费看黄色一级片_丝袜一区二区三区_无码喷水一区二区浪潮av_亚洲视频区_国产黄网在线_抓住我的双乳咬我奶头视频看 | 国产h视频在线_日韩精品真人荷官无码_日日操日日摸_夏目友人帐第7季高清免费观看_宅男影院在线播放999_91视频网页版_亚洲黄一区二区三区_亚洲精品人人 | 男同GAY毛片免费可播放_欧美黄色性视频_精品色999_av无限看_激情天堂网_久久精品这里热有精品_久久国内偷拍视频_夜夜摸夜夜操 | 蜜桃在线一区_午夜福利09不卡片在线机视频_国产美女一级毛片_久久久无码a片观看免费_最新色综合_欧美肥臀大屁股MAGNET_国产亚洲欧美在线_亚洲一卡2卡3卡4卡精品 国产视频二区在线观看_久草在线免费资源_麻豆国产原创视频在线播放_久久五月丁香激情综合_亚洲精品国产福利_国产原创三级_一本一道在线人妻中文字幕_激情欲成人av在线观看av | 91插视频_国产激情免费_无码人妻精品一区二区三区久久久_欧美精品二区中文乱码字幕高清_成人无遮挡18禁免费视频_www.好色_一区福利在线_亚洲性大片 | 国产初高中生视频在线观看_GOGO少妇无码肉肉视频_奇米777四色成人影视_日本黄色五级片_色婷婷成人做爰视频免费_谍战剧惊弦免费观看_在线观看xxxx7777视频_免费a网 | 久久久国产精华液_制服丝袜第10页综合_亚洲色无码a片一区二区麻豆_40岁成熟女人牲交片_国产欧美一区二区三区国产幕精品_欧美gogo_日本无人区码suv_人人性人人爱 中文字幕无码日韩专区_久久艹逼_男人j进女人p免费视频_日本黄色免费在线_天堂综合网久久_亚洲欧美国产精品久久久久_中文字幕日韩高清2024_亚洲欧美激情精品一区二区 | 欧美精产国品一二三类产品特点_久久久亚洲精品一区二区三区_夭天干天天躁天天摸_AV在线观看_免费毛片av_成人AV免费视频_91色伦_日本aaaa片毛片免费观看视频 | 成人小视频在线观看免费_麻豆精品久久久久久中文字幕无码_国产成人麻豆精品午夜福利在线_精品成av人一区二区三区_影视先锋男人无码在线_青青草青娱乐在线_天操夜夜操_精品一区毛片 | 亚洲黄色小说图片_国产精品久久久久久久综合_色一乱一伦一图一区二区精品_免费gogo少妇大尺寸视频_欧美成免费A级毛片_伊人色吧_性猛交xxxx免费看蜜桃_亚洲第一伊人 | japanese69极品少妇_卡一卡二卡三免费视频_亚洲精品中文字幕无码蜜桃_在线观看美女网站大全免费_中文字幕制服丝袜一区二区三区_久久久精品国产一区_九九九在线观看_想看一级黄色 | 男同GAY毛片免费可播放_欧美黄色性视频_精品色999_av无限看_激情天堂网_久久精品这里热有精品_久久国内偷拍视频_夜夜摸夜夜操 | 久久久乱码精品亚洲日韩_成人特级毛片_国产精品素人一区二区_2018国产在线视频_看欧美ab黄色大片视频免费_free性丰满白嫩白嫩的hd_日本一级片在线观看_日本在线免费 | 亚色网址_亚洲第一综合区_久久99精品久久久_污污内射在线观看一区二区少妇_夜草av_免费无码一区二区三区蜜桃大_激情av无码后入_77色77国产欧美在线 | 日本系列第一页_国产黑丝啪啪_亚洲成AV人片在线观看无线_国产视频一区精品_国产中日韩久久久噜噜久久_色yeye免费人成网站在线观看_av男人在线东京天堂_91视频插插插 | 丰满人妻熟妇乱又仑精品_成人综合视频在线观看_国产av一区二区三区最新精品_日本视频网站在线观看_a级毛毛片_成人女人a级毛片免费软件_91久久国产精品_久久国产精品偷 | 东京热无码av一区二区_蜜桃视频在线观看入口_中文字字幕在线乱码_国产乱子夫妻_国精品午夜福利视频不卡_男人的天堂日本_蜜芽国产成人精品区_久久嫩草影院免费看 欧美午夜寂寞影院_91精品欧美一区综合在线观看_中文字幕乱码亚洲无线码按摩_免费看片免费播放国产_精品视频二区_韩日a级片_日本XXXX色视频在线观看免费,_亚洲成av人影片在线观看 | 久久亚州综合_97碰在线看片免费视频_亚洲精品一区国产精品_制服丝袜中文字幕无码自拍_无码日韩人妻AV一区免费_97日韩在线_国产福利免费看_狠狠躁狠狠爱免费视频欧美 | 91短视频在线观看_亚洲国产成人久久综合一区77_国产成人亚洲欧美久久影院_狠狠久久亚洲欧美专_国产精品一区二区女厕厕_国产高清视频在线观看一区二区_一区两区三区四区乱码国产精品_成人av激情 | 免费三级在线观看_国产精品久久毛片A片_扒插扒插_久久久久亚洲AV无码专区首JN_大地资源在线观看免费播放片_91精品成人久久_麻豆剧场_欧美日韩51精品 | www亚洲最大aⅴ成人天堂_国产精品视频1区2区3区_caoporn国产_91.久久_日韩av一区二区三区_日韩欧美亚洲综合久久_性xxxxfreexxxxx欧美牲交v_www.成色av久久成人 | 久久精品视频免费看_国产成人精品免费视频大全五_三级在线国产_伊人久久久精品区aaa片_gogogo高清在线观看免费中国_少妇激烈床戏视频_国产精品999在线观看_超碰97在线免费 | 青青草激情视频_在线观看麻豆_综合自拍_成年国产_丝袜美女被出水一区_公车上玩弄白嫩少妇_亚洲成人日韩在线_午夜久久视频 |