gpt4 book ai didi

java - 查找 : '' The specified procedure could not be found 时出错

转载 作者:行者123 更新时间:2023-12-01 12:35:50 24 4
gpt4 key购买 nike

我正在尝试在java中使用C# dll函数。我得到了找不到函数的错误,但是,找到了 dll 并成功加载。

当我寻找问题时,我发现有时编译器会将符号和整个函数名称弄乱为“myFunction@32”而不是“myFunction”。不幸的是,这不是我的问题。

public interface IConectorT extends Library {
boolean DeleteCustomObjectRecord(String company, String username, String password, int cdoId,
String cdoName, int[] cdoRecordIds);


IConectorT INSTANCE = (IConectorT) Native.loadLibrary("C:\\Windows\\System32\\Eloqua API",
IConectorT.class, new HashMap() {
{
put("DeleteCustomObjectRecord","_DeleteCustomObjectRecord@32");
}
});
}

我尝试过@64、@32、@16等。还尝试添加“_”作为前缀。我还尝试过带“.dll”的绝对路径和不带“.dll”的绝对路径,相对路径相同。 (但是加载不是问题)

我尝试了一些更新,现在它返回此错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
Main.Main.DeleteCustomObjectRecord(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava
/lang/String;[I)Z
at Main.Main.DeleteCustomObjectRecord(Native Method)
at Main.Main.main(Main.java:15)

最佳答案

据我所知,JNA 仅适用于 native 库。在从 Java 访问 C# 库之前,您需要为它编写一个 C/C++ 包装器。

Check this answer

关于java - 查找 : '' The specified procedure could not be found 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25602109/

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