我正在学习 java 的路上,我想知道 C# 中的 System.load(dll) 并行/实现是什么。它像“使用”语句吗?我是 ac# 开发人员,所以也许通过一个例子,我会更好地理解它
问问题
551 次
3 回答
1
在 java :to Load a Java Native/Dynamic Library (DLL) 中,请参见以下示例:
import com.chilkatsoft.CkZip;
public class Test {
static {
try {
System.load("C:/chilkatJava/chilkat.dll");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load.\n" + e);
System.exit(1);
}
}
public static void main(String argv[])
{
CkZip zip = new CkZip();
System.out.println(zip.version());
}
}
在 C# 中:试试这个链接答案:https ://stackoverflow.com/a/1087851/1743852
于 2013-04-02T20:18:23.177 回答
1
在 C# 中,您可以使用反射在运行时动态加载库:
System.Reflection.Assembly myDllAssembly =
System.Reflection.Assembly.LoadFile("%MyDLLPath%\\MyDLL.dll");
之后,您将能够从该组合中搜索类型:
System.Type MyDLLFormType = myDllAssembly.GetType("MyDLLNamespace.MyDLLForm");
并创建该类型的对象:
Form MyDLLFormInstance = (Form)myDllAssembly.CreateInstance("MyDLLNamespace.MyDLLForm");
于 2013-04-02T20:22:22.480 回答
0
在 C# 中,您不能加载本机 dll,而是 P/Invoke 它们!
P/Invoke 或 Pinvoke 代表平台调用服务。PInvoke 是 Microsoft .NET Frameowrk 的一项功能,它允许开发人员调用动态链接库 (DLL) 中的本机代码。Pinvoking 时,.NET 框架(或公共语言例程)将加载 DLL 并自动处理类型转换。P/Invoke 最常见的用途是使用仅包含在 Win32 API 中的 Windows 功能。Windows 中的 API 非常广泛,只有部分功能封装在 .NET 库中。
于 2013-04-02T20:24:46.617 回答