日韩在线国产精品_少妇性饥渴BBBBB搡BBBB_3344在线永久观看视频播放_亚洲精品一区二区三区新线路_亚洲精品一级片_182午夜免费

  • 微軟HoloLens調(diào)用C++ DLL封裝可以嗎?

    2019/7/20??????點(diǎn)擊:
    一、C++ Dll基礎(chǔ)了解
    動(dòng)態(tài)鏈接庫(dll)比較好的介紹在孫鑫《VC++深入詳解》第十九章動(dòng)態(tài)鏈接庫中有詳細(xì)介紹。主要涉及以下問題:
    1.靜態(tài)鏈接庫與動(dòng)態(tài)鏈接庫的區(qū)別
    ①靜態(tài)鏈接庫編譯的時(shí)候加載;
    ②動(dòng)態(tài)鏈接庫運(yùn)行的時(shí)候加載。
    2.dll的顯式調(diào)用和隱式調(diào)用
    ①dll隱式加載:需要.h,.lib,.dll文件
    ①dll顯式加載:只需要.dll文件
    3.dll名字改編問題
    4.動(dòng)態(tài)鏈接庫導(dǎo)出類與導(dǎo)出函數(shù)
    SCR5逆運(yùn)動(dòng)算法C++ DLL封裝,具體是導(dǎo)出類還是導(dǎo)出函數(shù),根據(jù)導(dǎo)出類與函數(shù)的區(qū)別:
    導(dǎo)出類的優(yōu)點(diǎn):類可繼承,層次清晰、完整;
    導(dǎo)出類的缺點(diǎn):不能被其他語言調(diào)用,封裝性不好。
    導(dǎo)出函數(shù)的優(yōu)點(diǎn):可以被其他語言調(diào)用,封裝性好;
    導(dǎo)出函數(shù)的缺點(diǎn):層次混亂。
    考慮到dll需要被其他語言調(diào)用,需要在Unity和AR眼鏡中被調(diào)用,故而以導(dǎo)出函數(shù)的方式封裝。
    二、算法C++ DLL封裝
    1.打開VS打開VS2015,創(chuàng)建一個(gè)Win32項(xiàng)目,命名為Ikine_analyze_dll
    2.添加Ikine_analyze_dll.h和Ikine_analyze_dll.cpp文件
    3.在Ikine_analyze_dll.h中編寫逆運(yùn)動(dòng)算法函數(shù)接口,并添加dll名字改編
    4.在Ikine_analyze_dll.cpp中編寫逆運(yùn)動(dòng)算法函數(shù)實(shí)現(xiàn)
    5.配置Debug或者Release以及平臺(tái)X86和X64
    5.點(diǎn)擊生成->生成解決方案,于是創(chuàng)建完成dll.
    三、win32控制臺(tái)中使用方法
    采用dll隱式調(diào)用方法調(diào)用dll。
    1.創(chuàng)建win32控制臺(tái)程序Test
    2.將Ikine_analyze_dll.h和Ikine_analyze_dll.lib文件拷貝到工程目錄下
    3.添加.h包含目錄和lib庫目錄
    4.添加附加依賴項(xiàng)Ikine_analyze_dll.lib
    5.編寫main代碼,其中若添加#pragmacomment(lib,"Ikine_analyze_dll.lib"),則不需要進(jìn)行3和4的包含及庫目錄配置
    6.運(yùn)行程序出現(xiàn)錯(cuò)誤
    7.將Ikine_analyze_dll.dll文件拷貝到debug或者release文件夾下,再次運(yùn)行
    四、Unity中使用方法
    https://blog.csdn.net/wuquanl/article/details/72052207
    1. 將x64 release文件夾下生成的Ikine_analyze_dll.dll復(fù)制到unity項(xiàng)目Assets\Plugins文件夾
    2.在unity添加TestDebug.cs測試腳本如下,注意需要:
    ①using System.Runtime.InteropServices;
    ②使用[DllImport("Dll名字")]指明要引用的DLL,然后聲明要使用的DLL中的方法。
    3.運(yùn)行unity,測試是否調(diào)用成功
    可看出debug.log的數(shù)值與WIN32控制臺(tái)運(yùn)行的結(jié)果完全一致,同時(shí)機(jī)器人姿態(tài)也是正確的,說明在PC上unity中調(diào)用逆運(yùn)動(dòng)C++ dll算法成功返回?cái)?shù)值。
    五、AR眼睛中使用問題
    1.將unity的程序燒寫到HoloLensAR眼鏡中,運(yùn)行時(shí)候發(fā)現(xiàn)機(jī)器人姿態(tài)與數(shù)值與unity中運(yùn)行的結(jié)果和數(shù)值完全不同。
    2.返回unity中,將調(diào)用dll Ikine_RPY的這句函數(shù)注釋掉
    int i=Ikine_RPY( T_rpy,  JointVelo,  Psi_UserDefined,  Psi_Optimal, Joint,  Psi_Desired);
    3.運(yùn)行unity,發(fā)現(xiàn)數(shù)值和姿態(tài)與AR眼鏡中相同。說明AR眼鏡并沒有調(diào)用到C++dll文件。
    4.為了判斷是否是C++dll編寫錯(cuò)誤,寫了簡單的c++ 返回a+b的測試試驗(yàn),結(jié)果結(jié)論與以上完全相同,在PC  unity中可以運(yùn)行并正確取值,在AR眼鏡中運(yùn)行毫無結(jié)果。故而斷定AR眼鏡中不支持C++  dll的調(diào)用。查看unity中調(diào)用的dll,發(fā)現(xiàn)全是c#類庫的dll。 
    六、AR眼鏡是否支持C#封裝的dll測試
    1.創(chuàng)建C#類庫,.net  framework版本不要高于3.5
    2.修改文件名稱并編寫測試代碼
    3.生成->生成解決方案,找到dll
    4.在unity中測試a+b的返回結(jié)果
    5.在AR中測試a+b的返回結(jié)果,與PC上unity的返回結(jié)果一致。說明AR眼鏡可調(diào)用C#類庫dll.
    七、總結(jié)
    1.PC上unity可調(diào)用C++ DLL以及C#類庫DLL;

    2.AR眼鏡 HoloLens不支持調(diào)用C++ DLL,但是支持調(diào)用C#類庫DLL。


    主站蜘蛛池模板: 国产激情a | 亚洲国产精品午夜伦不卡 | 我要看中国一级毛片 | 日韩中文字幕综合 | 337p日本欧洲亚洲 | 全部免费毛片在线播放 | 欧美亚洲精品在线观看 | 一级无码一区在线观看 | 99国产精品一区二区 | 国产综合在线观看 | 中文字幕日韩一区二区 | 精品91自产拍在线观看一区 | 动漫精品一区二区三区在线 | 国产一区二区在线播放 | 成人性视频免费网站 | 国产伦精品一区二区三区免费观看 | 免费色在线 | 亚洲精品国产综合99久久夜夜嗨 | 久久综合亚洲色一区二区三区 | 中文字幕一区二区三区日韩精品 | 1000黄色片 | 免费在线观看av的网站 | 免费无码又刺激又爽 | 精品亚洲AⅤ无码午夜在线网站 | 无码亲近乱子伦免费视频在线观看 | 无码成人AAAAA毛片专区调教 | 亚洲图色欧美另类小说 | 亚洲视频在线观看一区 | 91精品国产综合久久久久蜜臀 | 水野优香在线亚洲一区 | 情侣一区| 粉嫩小仙女扒开双腿自慰 | 国产日韩精品在线播放 | 色综合天天综合网天天狠天天 | 中文久久久 | 无码人妻久久一区二区三区蜜桃 | 国产精品99久久久久久董美香 | 中文字幕亚洲视频 | 欧美综合一区二区 | 欧美久久人人网 | 国产精彩免费视频 |