亚洲国产精品成人综合色_日韩av片无码一区二区三区不卡_久久电影网午夜鲁丝片无码_亚洲人成a片在线观看_亚洲 日本 欧洲 欧美 视频_久久久久日韩精品免费观看_激情综合亚洲色婷婷五月_无码日本精品一区二区网站_欧美亚洲国产自偷自偷_99精品国产成人综合

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

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

    2018/3/20??????點擊:

    很多(duo)小伙伴不知(zhi)道(dao)如何在UE4里給VR外設寫插件,下面(mian)以WONGLOVE數據手(shou)套為例,給各(ge)位介紹(shao)一下UE4調用(yong)WONGLOVE數據手(shou)套的LIB, DLL開發庫(ku)的方法:

    1.在UE4中創(chuang)建一個(ge)空的blank插件

    2.打開插件(jian)的.bluid.cs

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

    4.添(tian)加(jia)到工程中 代碼(ma)如 

    PublicAdditionalLibraries.Add(lib目錄 + lib文件名(ming));//加載(zai)第三方靜態庫(ku).lib

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

    使用時(shi)在(zai)使用的代碼中直接#include 頭文件即可 (有(you)的時(shi)候編譯會報兩個(ge)鏈接錯誤(wu) 重新編譯一(yi)下(xia)就好了)

    5.使用dll庫, 代碼如(ru)下

    需要(yao)現在.build.cs中配置

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

    如果該dll有依賴(lai)的(de)dll 需(xu)要(yao)將依賴(lai)的(de)dll放在 binariesPath 相應(ying)的(de)平臺下 并調(diao)用(yong)上(shang)面的(de)代(dai)碼(ma)加載進來

    6.dll調用

    調用的方法(fa)如下:

    例如獲取數據手(shou)套數據的dll函數原型 bool GetData(unsigned short *data)

    則調用代碼(ma)中

    typedef int(*AddFunc)(unsigned short *data);
    AddFunc tempFunc;

    void* pDllHandler = FPlatformProcess::GetDllHandle(*dll路徑(jing));

    if (pDllHandler)
    {
    FString funcName = "GetData";
    tempFunc = (AddFunc)FPlatformProcess::GetDllExport(pDllHandler, *funcName);
    check(tempFunc);
    unsigned short tempdata[19];

    int c = tempFunc(tempdata);
    }

    ps:如果(guo)pc上運行(xing)正常 打包出來不(bu)好(hao)用 原因是插件(jian)的.uplugin中 type屬(shu)性 改(gai)成Runtime就好(hao)了 坑了我半天

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