我的整個應用程序(這是相當大的,有一個20MB的可執行文件)是用非託管C++編寫的。 因爲我可以清楚地看到使用託管代碼的優點,所以我想開始在我的應用程序中引入托管代碼,但我從哪裏開始?我的應用程序是非託管的。我在哪裏開始介紹託管代碼?
我可以很容易地開始使用C++/CLI,並與我的應用程序的其他部分聯繫起來呢? (儘管C++/CLI語法看起來頗爲'異乎尋常')。
或者是更好的移動到C#,但什麼是「鏈接」這與我的非託管C++代碼一起最好的方法是什麼?
是否有意義編譯使用/ CLR選項我所有的C++代碼嗎?這會工作嗎?
我需要擔心編組嗎?這是否會產生開銷,或者我是否可以在沒有性能損失的情況下在託管和非託管之間切換(就像20年前混合Fortran和C時那樣)。性能在我的應用程序中非常重要,因爲它是一個科學應用程序,有時會處理幾千兆字節的內存。
或者它纔有意義,重新設計的用戶界面,並且只寫在C#中,並保持我的應用程序的其餘部分(計算邏輯,業務邏輯,數據庫接口,...)在非託管C++?
由於我的應用程序有時需要處理的內存數千兆字節,我有一個64位的變體。是否容易擁有64位託管代碼?如果使用了大量內存,那麼垃圾收集器是否仍然有效?
簡單地說:我從哪裏開始?
帕特里克
託管C++既不魚也不禽 - 如果可能,我會避免它。 – 2009-12-17 16:36:16