我尝试使用java本机接口从.dll文件调用该函数,它成功运行,但我不知道如何使用C#从.dll调用函数,请就此提出建议。
答案 0 :(得分:1)
查看MSDN中的DLLImport属性 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 :(得分:1)
如果是本机DLL,则需要添加DLLImport语句,导入所需的函数。
文档为here。
该属性如下所示,通常为:
[DllImport("YourDllNameHere.dll")]
public static extern int YourFunction(int input);
这将从YourDllNameHere.dll导入一个名为YourFunction的函数(它接受一个int输入,并返回一个int)。
答案 2 :(得分:0)
假设您的DLL名称为MyLibrary
,MyFunction
是DLL中包含的函数。
首先右键点击Reference
,浏览并添加您的DLL
将您的DLL声明为命名空间using MyLibrary;
你可以拨打MyFunction
!
或强>
另一种方式, 你可以使用这个msdn reference!
答案 3 :(得分:0)
将该dll作为引用的dll添加到您的项目中的参考文件夹(右键单击引用,添加引用,然后“浏览”到您的DLL)。然后它应该可以根据需要使用,只需使用该dll作为跟随代码级别。
using System;
using YourDllName;
class ExampleClass
{
//you can use your dll functions
}
答案 4 :(得分: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();
注意: