• 您(nín)的位置(zhì):首頁 > 新聞動態 > UE4

    UE4調用VR外(wài)設WISEGLOVE數據手套的LIB和DLL開發庫的方法

    2018/3/20      點擊:

    很多小夥(huǒ)伴(bàn)不知道如何在UE4裏給VR外設(shè)寫插件,下麵以WONGLOVE數據手套(tào)為例(lì),給各位介紹一下UE4調用WONGLOVE數據手套的LIB, DLL開發庫的方法:

    1.在UE4中創建一個空(kōng)的blank插件

    2.打開插件的.bluid.cs

    3.需要將wonglove.lib wonglove.dll文件和對應的include文件 wonglove.h考到指定目錄中,通常為項目的Plugins/ThirdParty/Win64(可自定義)

    4.添加到(dào)工程中 代碼如 

    PublicAdditionalLibraries.Add(lib目錄 + lib文件(jiàn)名);//加載第(dì)三方靜態庫.lib

     PublicIncludePaths.Add(lib頭文件目錄);

    使用時在(zài)使用的代碼中直接#include 頭文件即可 (有的(de)時候編譯會報兩個鏈接錯誤 重新編譯一下就好了)

    5.使用dll庫, 代碼如下

    需要現在.build.cs中配置

     PublicDelayLoadDLLs.Add(dll目錄 + dll文件名);
     RuntimeDependencies.Add(new RuntimeDependency(dll目錄 + dll文件名));

    如果該(gāi)dll有依賴的dll 需要將依賴的dll放在 binariesPath 相應的平(píng)台下 並調(diào)用上麵的代碼加載進來

    6.dll調用

    調(diào)用的方法如下:

    例如獲取數據手套(tào)數據的dll函數原型 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:如果(guǒ)pc上運行正(zhèng)常 打包(bāo)出來不好用 原(yuán)因是插件(jiàn)的.uplugin中 type屬性 改成(chéng)Runtime就好了 坑了我(wǒ)半天

     ps: .使用dll時的路徑與build.cs中的路徑必須相同 否則editor模式下沒問(wèn)題 發(fā)布程序就會找不(bú)到dll

    AV永久天堂网_奇米狠狠色_亚洲欧美日韩动漫_欧美日韩视频在线观看免费一区二区_日韩精品一二三区_国产AV网站18禁止人_久久久久久精品人妻免费网站不卡_国产最新视频_另类免费视频在线视频二区_久久精品免视国产