我有一個現有的Java項目,它需要使用C#編寫的SDK的功能。它應該打開一個WPF窗口並將信息發送回Java。從Java啓動C#WPF會導致FileNotFoundExceptions
對於這兩個世界的基本連接,我創建了一個調用本地函數的Java項目(「DotNetCaller」)。這些實現在調用C#項目(「DotNetApplication」)的C++/CLI項目(「DotNetBridge」)中。
我已經可以在C#中從Java中設置字符串,並從C#到Java回調。
但只要我添加了一個WPF窗口,並嘗試以啓動它:
Application app = new Application();
app.Run(new DotNetWindow());
在STA線程崩潰。
DotNetApplication沒有找到mscorlib.resources,我提供的DLL後,PresentationFramework.resources丟失,如果我提供,DotNetApplication.resource丟失(我不能提供)。
如果我單獨調用DotNetApplication或者從DotNetBridge調用,窗口按預期顯示。
任何人都可以告訴馬我在這裏真的很想念嗎?
感謝
編輯:
我看着this example一次,並試圖使其適應我的需要。 我已經設置了ResolveEventHandler的DLL目錄中的 「引用的程序集」
C中的.NET DIR:\程序文件(x86)\參考 大會\微軟\ Framework.NETFramework \ V4.0
並在C#中添加了一個窗口。
它失敗了,但在C++部分而不是C#中出現了新的異常。 ResolveHandler被一個空參數調用,導致mscorelib中出現不可捕捉的異常。 我添加了一個檢查,如果字符串是空的,這種基本方法現在工作正常。
我仍然不確定我是否有正確的方法,所以請隨時提供。
謝謝,已經讓我對它更加清楚。我已經開始返回一個nullptr,現在我終於知道爲什麼了。 –