擁有自己的Java代碼我正在使用C#調用一些調用(通過JNI)java代碼的非託管代碼。我使用JNI,因爲我需要確保:從C#調用我自己的Java代碼#
- 的Java代碼將在真正的JVM上運行的能力,而不是在一些.NET VM
- 來連接到虛擬機進行調試的能力(IKVM做「NT支持)
- 我需要免費的解決方案
- 目前的免費解決方案並不適用(例如IKVM)
不管怎樣,我的問題是如何管理的最佳方式,這些層之間傳遞的字符串沒有泄漏。 我做這樣的事情:
[DllImport(@"MyDll.dll")]
public extern static void receive_message(string receDest, StringBuilder response);
這意味着我分配在託管代碼響應的內存。 我想避免這種情況,因爲我事先不知道響應的長度。我該如何編寫一個適當的方法來爲託管代碼分配正確的緩衝區而不會泄漏。 JNI代碼應該是線程安全的。
有什麼建議嗎?
感謝,
蓋伊
1. JNBridge不是免費的。 2.我不明白我如何配置JVM。 3.在他們的示例中,您需要自己加載JVM(直接調用java) 謝謝, Guy – Guy 2010-01-14 09:08:00
我知道JNI不是免費的。沒有看到這是一項要求。你的時間值多少錢? – Cheeso 2010-01-14 09:41:00
+1,建議通過使用套接字在兩個進程之間進行通信來保持它簡單。 – Mark 2010-01-14 09:53:19