jna/c#:java.lang.unsatifiedLinkError:查找函数时出错';测试';

jna/c#:java.lang.unsatifiedLinkError:查找函数时出错';测试';,java,c#,jna,Java,C#,Jna,我想使用一个C#dll函数 c# 爪哇 我使用Visual Studio构建了c#项目,它在project bin\Release目录中生成了3个文件: dllExample.dll dllExample.pdb RGiesecke.DllExport.Metadata.dll JDK版本:1.8.171 jna:net.java.dev.jna:jna:4.5.1 当测试运行时,我得到以下异常: java.lang.UnsatisfiedLinkError:查找函数“Test”时出错:A

我想使用一个C#dll函数

c#

爪哇

我使用Visual Studio构建了c#项目,它在project bin\Release目录中生成了3个文件:

  • dllExample.dll
  • dllExample.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ó

位于com.sun.jna.Function.(Function.java:245) com.sun.jna.nativellibrary.getFunction(nativellibrary.java:566)位于 com.sun.jna.nativellibrary.getFunction(nativellibrary.java:542)位于 com.sun.jna.nativellibrary.getFunction(nativellibrary.java:528)位于 com.sun.jna.Library$Handler.invoke(Library.java:228)位于 com.sun.proxy.$Proxy5.Test(未知源)位于 hu.kdiv.keaesz.sign.DirectMSCAPITest.jnaTest(DirectMSCAPITest.java:149)

我错过了什么?
我使用Visual Studio build Solution函数构建dll。

我使用的是UnmanagedExpirt NuGet包。这不好

解决方案:

删除UnmanagedExport并使用DllExport NuGet包。说明如下:

using RGiesecke.DllExport;

namespace dllExample
{
    public class DllExample
    {
        [RGiesecke.DllExport.DllExport]
        public static string Test(string id)
        {
            return "done" + id;
        }
    }
}
@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);
}