【问题标题】:Can a java "unmanaged" code be imported to C# through [DllImport] attribute?可以通过 [DllImport] 属性将 java“非托管”代码导入 C# 吗?
【发布时间】:2015-03-13 19:06:31
【问题描述】:

当我研究 c#(System.Attribute) 中的 Attribute 类时,我遇到了 [DllImport] 属性。根据网络和我的理解,它是将非托管实现从 DLL 导入托管 C# 编码。如果我是对的,这个属性也可以用来导入java实现吗?

【问题讨论】:

标签: java c# dll dllimport unmanaged


【解决方案1】:

DllImport 封装了 Win32 的 LoadLibraryGetProcAddress 函数。这些函数用于从非托管模块导入。 Java 代码不是非托管的,因此不能使用DllImport 调用 Java 代码。

【讨论】:

  • 能否请您解释一下“非托管”的确切含义?我认为它适用于所有非 C# 语言。我对 C# 很陌生,这就是为什么。 @大卫赫弗南
  • Java 的管理方式与 .net 相同。代替 .net 运行时的是 JVM。这里的非托管是指一个经典的 Win32 PE 文件,例如您可以从 C++ 源代码生成的文件。使用的另一个术语是本机代码。这有点毛骨悚然,但最重要的是Java没有质量。您很容易无法从 Java 中创建可以使用 LoadLibrary 加载的 DLL。您可以做的是创建一个导出函数的 DLL,然后创建 JVM 实例,加载一些已编译的 Java 代码,并使用 Java 运行时 API 调用它。但这是一项严肃的工作。
  • 但这不会是要走的路。按照 Henk 给你的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
相关资源
最近更新 更多