我有一个DLL
(TransferImg.dll
)是用C#
(由外部公司提供)编写的,他们告诉我需要创建一个接口来从 JAVA 访问图像传输功能,我一直在研究如何,但我没有找到可以理解的东西或工作。
提供给我的数据是: - TransferImg.dll 库
- 添加对项目的引用。
- 添加Using Transfer
;
- 创建对象Command myobj = new Command();
- 调用myobj.SendImagesToScale
返回带有错误的整数的函数。
这是我要使用的功能:
int SendImagesToScale(string Ip, string PathImage ,string Tipo, Socket iSock);
我不知道该怎么做,这是我从一个例子中获取的代码:
public class SendImg {
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary)
Native.loadLibrary((Platform.isWindows() ? "C:\TransferImg.dll" : "c#"), CLibrary.class);
void SendImagesToScale(string Ip, string PathImage ,string Tipo, Socket iSock);
}
public static void main(String[] args) {
CLibrary.INSTANCE.SendImagesToScale("192.168.1.111", "C:\img.jpg", "Splash", 3306);
}
}
DLL:TransferImg.dll
我刚刚在 c# 中创建了一个测试项目,并将您上传的 DLL 添加到创建的项目中。
在检查 dll 时,该函数并不存在
int SendImagesToScale(string Ip, string PathImage ,string Tipo, Socket iSock);
,但有一个类似的函数:int TORREYSendImagesToScale(String sIpScale, String sPathImage, String sTypeData, Socket iSock);
问题是,如果你想使用它,你不能直接使用它,因为这是一个类的函数,并且该函数没有声明为静态,所以你必须首先创建类的实例,然后通过创建的实例调用函数.
检查 dll,我没有找到任何功能
void SendImagesToScale(string Ip, string PathImage ,string Tipo, Socket iSock);
,但如果有一个int TORREYSendImagesToScale(String sIpScale, String sPathImage, String sTypeData, Socket iSock);
可能是您的错误,请使用 dotpeek ( https://www.jetbrains.com/decompiler/download/ ) 反编译 dll,以便您可以更多地研究 dll或者回到你喜欢的地方,这样我就可以看到 dll 中的所有代码,在TorreyTransfer的命名空间中是 functionTORREYSendImagesToScale
。我做了一些可以帮助你的代码:
TransferImg.dll
它应该在您项目的地址中。您需要制作几个包装器,调用一个调用您
DLL
en的类的类,C#
例如:在这里,您有一个页面可能会很有帮助: LINK