gpt4 book ai didi

c# - 如何从 Java 调用 .NET dll

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:53 24 4
gpt4 key购买 nike

我有这段代码可以创建一个简单的 .NET .dll。它只返回一个 int

但是,它在 Java 中不起作用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ReturnINT
{
public class ReturnINT
{

public static int RetornaInteiro ()
{
try
{
int number = 2;

return number;
}
catch (Exception)
{
return 1;
}
}
}
}

如何从 Java 中调用方法?

当我使用 JNI 时,我在 java 中遇到此错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Dll.RetornaInteiro()V
at Dll.RetornaInteiro(Native Method)
at Dll.main(Dll.java:27)

最佳答案

检查 http://www.javonet.com以及。使用一个 jar 文件,您可以加载此 dll 并按如下方式调用:

Javonet.AddReference("your-lib.dll");
int result = Javonet.getType("ReturnINT").Invoke("RetornaInteiro");

Javonet 将在 .NET 进程中自动加载您的库,并允许您访问其中包含的任何类和类型。接下来您可以获取您的类型并调用静态方法。方法结果和参数在 JAVA 和 .NET 类型之间自动转换。您可以像这样传递例如字符串或 boolean 参数

Boolean arg1 = true;
String arg2 = "test";
Javonet.getType("ReturnINT").Invoke("MethodWithArguments",arg1,arg2);

它们会自动翻译。

此外,您还可以创建您的类型的实例、订阅事件、设置/获取属性和字段、处理异常甚至传递值类型参数。查看文档以获取更多详细信息:

http://www.javonet.com/quick-start-guide/

PS:我是 Javonet 团队的成员。因此,如有任何关于 native 集成和我们产品的详细问题,请随时问我。

关于c# - 如何从 Java 调用 .NET dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com