jna/c#: java.lang.UnsatisfiedLinkError: 查找函数"Test"时出错



我想使用C# dll函数。

C#

using RGiesecke.DllExport;
namespace dllExample
{
public class DllExample
{
[RGiesecke.DllExport.DllExport]
public static string Test(string id)
{
return "done" + id;
}
}
}

.java

@Test
public void jnaTest() {
DllExample dllExample = Native.loadLibrary("c:\Users\IEUser\RiderProjects\dllExample\dllExample\bin\Release\RGiesecke.DllExport.Metadata.dll", DllExample.class);
Assert.assertEquals("doneabc", dllExample.Test("abc"));
}
public interface DllExample extends Library{
String Test(String id);
}

我用Visual Studio构建了c#项目,它将3个文件放入项目bin\release目录中:

  • dll示例.dll
  • dll示例.pdb
  • RGiesecke.DllExport.Metadata.dll

JDK 版本:1.8.171

jna: net.java.dev.jna:jna:4.5.1

运行测试时,我收到以下异常:

java.lang.UnsatisfiedLinkError: 查找函数"Test"时出错:A megadott eljárás nem található.

at com.sun.jna.Function.(功能.java:245( 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:566( at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:542( at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:528( at com.sun.jna.Library$Handler.invoke(Library.java:228( at com.sun.proxy.$Proxy 5.Test(未知来源( at hu.kdiv.keaesz.sign.DirectMSCAPITest.jnaTest(DirectMSCAPITest.java:149(

我错过了什么? 我正在使用Visual Studio Build Solution功能构建dll。

我是UnmanagedExpirt NuGet包。这不好。

溶液:

删除非托管导出并使用 DllExport NuGet 包。描述如下: https://github.com/3F/DllExport

最新更新