查找时出错:'';找不到指定的过程

本文关键字:过程 找不到 查找 出错 | 更新日期: 2023-09-27 18:20:14

我正在尝试在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"和不使用绝对路径,相对路径相同。(但装载不是问题)

我尝试了一个小更新,现在它返回这个错误:

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仅适用于本机库。在从Java访问C#库之前,您需要为它编写一个C/C++包装器。

检查此答案