UE4調用VR外設WISEGLOVE數據手(shǒu)套的LIB和DLL開發庫的方法
很多小夥(huǒ)伴不知道如何在UE4裏給VR外設寫插件,下麵以WONGLOVE數據手套為例(lì),給各位介紹一下UE4調用WONGLOVE數據(jù)手套的LIB, DLL開發庫的方法:
1.在UE4中創建一個空的blank插件
2.打開插件(jiàn)的.bluid.cs
3.需要將wonglove.lib wonglove.dll文件和對應的include文件 wonglove.h考到指定目錄中,通常(cháng)為(wéi)項目的Plugins/ThirdParty/Win64(可自定義(yì))
4.添加到工程中 代碼如(rú)
PublicAdditionalLibraries.Add(lib目錄 + lib文(wén)件名);//加載第三方靜態庫.lib
PublicIncludePaths.Add(lib頭文件目錄);
使用時在使用的代碼中直接#include 頭文件即可 (有的時候編譯會(huì)報(bào)兩個鏈接錯誤 重新編(biān)譯一下就好(hǎo)了)
5.使用dll庫(kù), 代碼如下
需要現在.build.cs中配置
PublicDelayLoadDLLs.Add(dll目錄 + dll文件名);
RuntimeDependencies.Add(new RuntimeDependency(dll目錄 + dll文件名));
如果該dll有依賴(lài)的dll 需要將依賴的(de)dll放在 binariesPath 相應(yīng)的平台下 並調用上麵的(de)代碼加(jiā)載(zǎi)進來
6.dll調用
調用的方法如(rú)下:
例如獲取(qǔ)數據手套數據的dll函數(shù)原型 bool GetData(unsigned short *data)
則調用代碼中
typedef int(*AddFunc)(unsigned short *data);
AddFunc tempFunc;
void* pDllHandler = FPlatformProcess::GetDllHandle(*dll路徑);
if (pDllHandler)
{
FString funcName = "GetData";
tempFunc = (AddFunc)FPlatformProcess::GetDllExport(pDllHandler, *funcName);
check(tempFunc);
unsigned short tempdata[19];
int c = tempFunc(tempdata);
}
ps:如果pc上運行正(zhèng)常 打包出來不好用 原因是插件的.uplugin中 type屬性 改成Runtime就好了 坑了我半天
ps: .使用dll時的路徑(jìng)與build.cs中的路(lù)徑必須相同 否則editor模式(shì)下沒問題 發布程(chéng)序就會找不到dll
- 上一篇:虛幻UE4如何鏈(liàn)接第三方庫(lib和dll) 2018/3/20
- 下一篇:研究人員推出 3D 人體解剖模型,醫學學生練打(dǎ)針不用互相紮了 2018/3/14