java調(diào)用第三方dll文件 究竟是.Net好還是Java好,歡迎大家發(fā)言,暢所欲言?
究竟是.Net好還是Java好,歡迎大家發(fā)言,暢所欲言?我選擇dotnet,因為宇宙中有第一個ide-vs2019祝福,不接受駁斥。我該怎么用Java程序調(diào)用C#生成的dll文件?首先,您需要編寫本機
究竟是.Net好還是Java好,歡迎大家發(fā)言,暢所欲言?
我選擇dotnet,因為宇宙中有第一個ide-vs2019祝福,不接受駁斥。
我該怎么用Java程序調(diào)用C#生成的dll文件?
首先,您需要編寫本機Java方法。公共類測試{靜態(tài){System.loadLibrary文件(“mydll”)public static void main(string[]args){new test()。Test()}public native void Test()}
2是用javac編譯的。使用javah生成頭文件。生產(chǎn)頭文件位于執(zhí)行這些命令的目錄中。
3、編寫c代碼。包括此頭文件。在頭文件中實現(xiàn)測試功能。
4、編譯的C語言程序。將C轉(zhuǎn)換成庫文件的DLL后綴。
5、在本例中,只需將庫文件放在項目的根目錄中。
java調(diào)用C寫的DLL?
C調(diào)用C的DLL更方便。
1. 創(chuàng)建一個新的C#類庫
在代碼編輯之后,生成類庫并得到一個DLL
2。創(chuàng)建一個新的控制臺應(yīng)用程序來調(diào)用類庫
2.1右鍵單擊引用,在彈出的對話框中單擊添加,切換到瀏覽選項卡,然后找到生成的DLL
添加后,控制臺應(yīng)用程序變成這樣
2.2,您可以調(diào)用它。首先,介紹類庫的名稱空間,然后可以調(diào)用它。
3. 構(gòu)建控制臺應(yīng)用程序并運行它(記住將控制臺應(yīng)用程序1設(shè)置為啟動項)
以上是一個簡單的調(diào)用。當然,C#甚至可以將所有表單封裝到DLL中,被調(diào)用方并不局限于控制臺應(yīng)用程序。但是想法是一致的
如果DLL不是你寫的,并且你想調(diào)用的函數(shù)不是你寫的,Stdcall聲明VB direct call會報告一個錯誤
如果DLL是你寫的,注意調(diào)用約定,看下面的代碼
**********以下是dll代碼。這是用CPP
外部“C”uuudeclspec(dllexport)voiduuustdcall HelloWorld()
{
消息框(null,“HelloWorld”,“HelloWorld”,null)}。Def
庫“XXX”
導(dǎo)出
在此處添加地獄世界@1
*******************************************************
公共聲明子HelloWorld庫“XXXX.dll“那么,就可以用VB代碼了。VB.net版JNI是一個通過Java調(diào)用C/C的動態(tài)鏈接庫(DLL)。所以我想到了。類-->。H-->dll是不正確的,這也違背了JNI的初衷。DLL是由C/C生成的。以前的一個項目使用java調(diào)用C/cdll,所以我對此很熟悉。該DLL由C程序員編寫,可以在microsoftvisualc6.0編輯器中生成。然后Java程序員使用JNI調(diào)用DLL中實現(xiàn)的函數(shù)(方法)。
VB.net如何調(diào)用C DLL,有重謝?
不要告訴我這個過程。
將DLL文件放入項目的bindebugdirectory。如圖所示:
請單擊“輸入圖片說明”
,然后在要引用的文件代碼中添加這樣的語句:
“[dllimport(”***。DLL”,調(diào)用約定=呼叫會議.Cdecl)],然后按以下格式聲明所需函數(shù):
public static external ReturnType functionname(type name)
public可以替換為其他內(nèi)容,如private,而static external則是必需的。如圖
2.,則調(diào)用它。如圖所示: