繁体   English   中英

如何从Java中的C#dll调用Function?

[英]How to call Function from an C# dll in Java?

我有一个SAP-DLL,可以在编程接口和SAP Programm之间进行通信。

我将c#与dll文件结合使用的示例代码如下:

var loggerService = LoggerService.GetLoggerService("FileLogger");
var itasProxy = SapProxyFactory.CreateSapProxy(SapSystem.Example, loggerService, "Example_User", StringExtension.CreateSecureString("Example_Password")); 
var funcResult = sapProxy.SearchSapAddress(clientNo);

if (funcResult.Successfull)
{
    funcResult.ReturnValue = withFormatting
        ? AddressFormatter.SplitStreetHouseNo(funcResult.ReturnValue)
        : funcResult.ReturnValue;
}

现在,我希望将相同的功能转移到Java。 我绝对不知道该怎么做。 我以Loggerservice作为启动器尝试了以下操作,但不起作用:

public class SAPConnector {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        connectSAP();
    }
    public void connectSAP()
    {
        System.load("C://Temp//SapConnector.dll");
        Object loggerService = getLoggerService("FileLogger");
    }
    public native Object getLoggerService(String lcLogger);
}

我只需要某种信息,如何从dll调用函数,或如何将C#代码转换为Java中工作代码的示例。

问候,

凯文

DLL是Microsoft格式。 Java是跨平台的,因此无法识别任何特定于操作系统的内容,例如DLL。

解决该问题的一种方法是使用JNI(Java本机接口) ,但这通常不是一个好的解决方案,因为它使程序依赖于平台。

相反,我会从SAP寻找JAR,它提供了类似的界面。 也许在SAP JCO上

您可以在此处看到一些使用JCO的实际代码示例 ,并在此处 了解有关逐步下载和配置的技术信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM