我試圖從.dll文件使用java本機接口調用函數,它的成功工作,但我不知道如何使用C#從.dll調用函數,請指教我在這。如何使用C#程序從.dll調用函數
1
A
回答
1
看DllImport屬性MSDN中 http://msdn.microsoft.com/en-us/library/aa664436(v=vs.71).aspx
using System;
using System.Runtime.InteropServices;
class Example
{
[DllImport("your_dll_here.dll")]
static extern int SomeFuncion1(int parm);
static void Main()
{
int result = SomeFunction1(10);
}
}
1
如果它是一個原生的DLL,你需要添加的DllImport聲明,導入你想要的功能。
該文檔是here。
屬性看起來像這樣,通常爲:
[DllImport("YourDllNameHere.dll")]
public static extern int YourFunction(int input);
這將導入一種稱爲yourFunction中函數(採用int輸入,並返回一個int)從YourDllNameHere.dll。
0
假設您的DLL名稱是MyLibrary
而MyFunction
是DLL中包含的函數。
首先右鍵單擊您的Reference
,瀏覽並添加您的DLL。
將您的DLL聲明爲命名空間using MyLibrary;
而且您可以撥打MyFunction
!
或者
另一種方式, 您可以使用此msdn reference!
0
將該dll添加到您的項目中,作爲引用dll到參考文件夾中(右鍵單擊引用,然後添加引用,然後「瀏覽」到您的DLL)。然後它應該可供您使用,只需使用該dll如代碼級別所示。
using System;
using YourDllName;
class ExampleClass
{
//you can use your dll functions
}
0
我喜歡Baldrick爲DllImport屬性提供的鏈接。
這是我推薦的。
下載Dependency Walker(小應用程序exe文件,無需安裝)。
在Dependecy Walker中打開您的DLL以查看DLL的公開入口點。
在C#中聲明外部調用本地函數,就像這樣。
C#:
[DllImport("Your_DLL.DLL", EntryPoint="Function_Entry_Point",CallingConvention=CallingConvention.StdCall)]
static extern IntPtr Function1();
注:
- 如果沒有指定入口點函數名被視爲切入點。
- 當您運行應用程序時,請確保本機DLL位於 相同的文件夾中。
相關問題
- 1. 如何從VBScript調用C#DLL函數
- 2. 如何從VB調用C++ DLL函數?
- 3. 從C++調用DLL函數
- 4. 調用C++程序中的dll函數
- 5. 從C#應用程序調用C++ DLL
- 6. 從C調用C/C++ dll函數#
- 7. 從C++/CLI調用C#dll函數
- 8. 從C#程序調用一個C DLL
- 9. 從Java應用程序調用C#dll
- 10. 如何從C++/CLI應用程序調用C#.dll?
- 11. 如何從C#窗口應用程序項目調用C++ dll
- 12. 從C程序中調用C++函數
- 13. C# - 從動態庫DLL調用函數
- 14. 從C#調用delphi DLL函數代碼
- 15. 從dll調用函數到exe C++
- 16. PInvokeStackImbalance從C調用dll函數時#
- 17. JNA函數調用C DLL
- 18. C++調用DLL函數
- 19. 如何從Ruby調用Windows DLL函數?
- 20. 如何使用C DLL C#程序
- 21. C程序如何調用Perl函數?
- 22. 如何從C++/C調用這個DLL函數#
- 23. 如何在C/C++中從dll調用導出的函數?
- 24. 如何從C#中調用C++ DLL函數#
- 25. 如何使用P/Invoke從64位C#應用程序調用64位C++ DLL?
- 26. 將C#DLL添加到wix安裝程序並從該DLL調用函數
- 27. 我該如何調試使用Visual Studio從VBA調用的C++ DLL函數
- 28. 如何從C#應用程序調用COM-DLL?
- 29. 從Cobol程序調用C函數
- 30. 從DLL中調用函數
請提供您正在使用的代碼。 –