我的整个应用程序(相当大,有 20MB 的可执行文件)是用非托管 C++ 编写的。因为我可以清楚地看到使用托管代码的优势,所以我想开始在我的应用程序中引入托管代码,但是从哪里开始呢?
我可以轻松开始使用 C++/CLI 并将其与我的应用程序的其余部分链接吗?(尽管 C++/CLI 语法看起来相当“异国情调”)。
还是迁移到 C# 更好,但是将它与我的非托管 C++ 代码“链接”在一起的最佳方法是什么?
使用 /clr 选项编译我的所有 C++ 代码是否有意义?这行得通吗?
我需要担心编组吗?这是否会产生开销,或者我可以在托管和非托管之间切换而不会降低性能(就像我 20 年前混合 fortran 和 C 时所做的那样)。性能在我的应用程序中非常重要,因为它是一个有时会处理数 GB 内存的科学应用程序。
还是只重新设计用户界面才有意义,只用 C# 编写它,并将我的应用程序的其余部分(计算逻辑、业务逻辑、数据库接口……)保留在非托管 C++ 中?
由于我的应用程序有时需要处理几千兆字节的内存,所以我有一个 64 位的变体。拥有 64 位托管代码容易吗?如果使用那么多内存,垃圾收集器是否仍然有效?
简单地说:我从哪里开始?
帕特里克