2023-01-21 307
拥有我自己的Java代码,我正在使用C#来调用(通过JNI)呼叫JNI代码的一些非托管代码.我正在使用JNI,因为我需要确保:
运行的能力
无论如何,我的问题是如何以最佳方式管理这些层之间的字符串,而不会泄漏.
我正在做:
[DllImport(@"MyDll.dll")]
public extern static void receive_message(string receDest, StringBuilder response);
这意味着我正在为托管代码中的响应分配内存.
我想避免这种情况,因为我不知道响应长度.我如何编写适合JNI的方法,该方法将在没有泄漏的情况下为托管代码分配正确的缓冲区. JNI代码应该是安全的.
有什么建议?
谢谢,
Guy
您 May 需要JNI,但您的要求并没有真正表示.
使用真实JVM 的要求不决定使用JNI.我建议提高您的要求,或考虑宽松的耦合.例如,套接字通信,Web服务,共享数据库,共享文件或 queue .
如果您真的需要Java和.net在相同的过程中运行,则使用紧密的耦合,请考虑 jnbridge .
他们解决了您面临的问题.
您可能有兴趣尝试使用.net CIL中的Java字节码代码,并使用 ikvm.net .
您本质上需要从.NET代码中远程调用Java程序.
使用您当前的技能集,我建议您在Java机器中创建Web服务 – Java 6中相对容易 – 基于WSDL在.NET程序中创建客户端.
这可能是当今技术的最干净的解决方案.
如果出于某种原因不够好,请添加到您的问题中.
以上所述是小编给大家介绍的从C#调用我自己的Java代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26304.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态