1.先創建java項目
2.用javah命令生成c++頭文件(com_xzazt_dll_HelloWorldDll.h)
打開項目所在的文件夾,打開src文件夾,按住shift鍵,鼠標點擊右鍵-->在此處打開命令窗口
①編譯java文件,生成.class文件
②用javah 生成c++頭文件
注意:javah命令要在src目錄下執行,不然會報錯“找不到 com.xzazt.dll.HelloWorldDLL 的類文件”
3.vs2015開發c++庫
打開vs2015-->文件-->新建-->項目
此處選擇Win32項目或Win32 控制臺應用程序都可以
再點擊下一步
這里選擇DLL,空項目,點擊完成。
在解決方案中,點中helloworlddll右鍵-->在文件資源管理器中打開文件夾
將剛剛生成的.h文件復制進來
點擊頭文件右鍵-->添加-->現有項
選中復制c++頭文件,點擊添加
打開c++頭文件,會發現有好些錯誤,下一步
點擊helloworlddll右鍵-->屬性
選擇VC++目錄-->包含目錄-->編譯
添加jdk中include和其下面的win32文件夾,點擊確定-->確定
創建cpp文件:源文件-->添加-->新建項
選擇C++文件,命名為helloworlddll.cpp,點擊添加
在cpp文件中寫入頭部引入,將c++頭文件中的方法復制過來,添加方法體
點擊helloworlddll右鍵-->重新生成或生成
這時在資源文件管理中打開文件夾
再上一級文件夾
在Debug文件夾中就可以找到生成的DLL文件了
測試
將dll文件復制到jdk的bin目錄中,名字改為和eclipse中的System.loadLibrary("hwDll");加載的名字一致
注意:
①:如果不想發在jdk中,也可以通過System.out.PRintln(System.getProperty("java.library.path"));查看都有哪些路徑可以使用
②:no hwDll in java.library.path:這是沒有找到hwDll 庫文件,可以通過①查看放哪里
③:E:/JDK/jdk1.7.0_45/bin/hwDll.dll: Can't find dependent libraries:這是缺少依賴的dll庫文件
可以通過depends工具查看缺少哪些依賴的dll庫,然后上網上下載就可以了,直接搜dll文件下載,有好些網站可以下載的,把下載的一樣放到jdk中就行了,或者在java代碼中透過System.load()加載dll文件(注意dll文件順序不對也會報錯的)
測試運行就可以了
新聞熱點
疑難解答
圖片精選