Windows端的java程序使用jni調用C++編寫的庫

Windows端的java程序使用jni調用C++編寫的庫,原來實現過在Android和Linux端通過JNI調用C++程序,在Windows端沒有實現過,這裏記錄下幾個關鍵的點;

1、64位的dll工程,現在少有32位的平臺,所以需要通過VisualStudio編譯出64位的dll,注意屬性頁->C/C++->代碼生成/運行庫/選擇多線程調試(/MTd),參考Linux編譯選項的靜態鏈接和動態鏈接的思路就比較好理解了:

靜態鏈接:多線程(/MT)、多線程調試(/MTd)

動態鏈接:多線程DLL(/MD)、多線程調試DLL(/MDd)

動態鏈接爲D,靜態鏈接爲T。兩者的區別在於,靜態鏈接將程序所依賴的運行庫集成到了可執行文件中,可執行文件運行時不再需要運行庫;動態鏈接沒有把程序所依賴的運行庫集成到可執行文件中,可執行文件運行時需要運行庫。 

推薦選擇/MTd, 這樣Java程序就不需要重複鏈接一些依賴的三方庫,或者自己寫的靜態庫;我們實現的場景就是通過一個dll工程封裝多個lib庫的工程;

2、注意Eclipse工程搜索路徑的建立:參考https://blog.csdn.net/pxhero2012/article/details/52926082

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章