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