Pat*_*ick 6 .net mixed-mode managed-c++ unmanaged managed-code
我的整个应用程序(相当大,具有20MB可执行文件)是用非托管C++编写的.因为我可以清楚地看到使用托管代码的优势,我想开始在我的应用程序中引入托管代码,但是我从哪里开始呢?
我可以轻松地开始使用C++/CLI并将其与我的应用程序的其余部分链接吗?(尽管C++/CLI语法似乎相当"异国情调").
或者转到C#更好,但是将这与我的非托管C++代码"链接"在一起的最佳方法是什么?
使用/ clr选项编译所有C++代码是否有意义?这会有用吗?
我不得不担心编组吗?这是否会产生开销,或者我可以在托管和非托管之间切换而不会造成性能损失(正如我20年前混合fortran和C时所做的那样).性能在我的应用程序中非常重要,因为它是一个科学的应用程序,有时会处理几千兆字节的内存.
或者只重新设计用户界面,并且只在C#中编写它,并将我的应用程序的其余部分(计算逻辑,业务逻辑,数据库接口......)保存在非托管C++中?
由于我的应用程序有时需要处理几千兆字节的内存,因此我有一个64位的版本.拥有64位托管代码是否容易?如果使用那么多内存,Woudl垃圾收集器仍然有效吗?
简单说明:我从哪里开始?
帕特里克
目前,这个问题已经结束了。
我意识到答案不是混合 C++ 和 C#,而是首先获得正确的架构。
如果架构正确,并且在需要分离的地方进行分离,那么通过其他模块(外部、其他语言等)更改应用程序的部分应该更容易。
关于编组过程中的性能问题,还得等到.Net进一步成熟之后再说。
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |