2012-07-16 15 views
0

我有一個Java GUI應用程序,它通過SWIG生成的文件與後端的標準C++ DLL很好地進行了交互。後端程序目前是C++和託管C++/CLI的組合。問題是我們最終可能將它全部移植到C++/CLI。由於SWIG似乎無法與託管C++/CLI一起使用,我還可以使用什麼(與Java通信)?

如果我錯了,請糾正我的錯誤,但從我已經知道的情況來看,SWIG目前不支持C++/CLI,也沒有計劃讓它這樣做。我想我可以編寫JNI代碼來使它工作。但使用SWIG更容易一些。那麼還有什麼其他選擇?使用越簡單越好。

+0

我想[JavaCPP](http://code.google.com/p/javacpp/)可以很容易地擴展發出C++/CLI所需的那些時髦的運算符,很有趣。 – 2012-07-22 04:38:27

+0

因爲它看起來像C++/CLI沒有像NewGlobalRef()這樣的東西,所以我們必須手動執行,像http://stackoverflow.com/a/4695939/523744,但它看起來很可行。 – 2012-07-23 01:21:49

回答

0

說SWIG不能與C++/CLI一起工作是不正確的......您應該能夠使用生成的互操作存根完全一樣的方式。我沒有遇到一種情況,開啓CLR支持打破了現有格式良好的C++代碼...

+0

我並不是在談論在項目屬性中激活/ clr支持選項的簡單問題。這個轉換將是一個完全重寫的代碼,它使用大量的*指針,並且調用#include 來引用Object中的方法,並且使用System命名空間。這可能是因爲我對這些文件運行swig的嘗試是有缺陷的,或者文件有問題。但是我沒有看到任何文件表明這種C++代碼與SWIG兼容。 – 2012-07-23 17:59:09

+0

我明白了。 SWIG無法解析使用C++/CLI語法擴展的文件,這是正確的。 – 2012-07-25 15:22:36

相關問題