VC++(本机)可以用VC#做什么?
从我所知道的唯一值得使用VC++原生的东西就是当你需要自己管理内存而不是CLR垃圾收集器时,我还没有看到任何目的(但这是另一个问题稍后会问) .
Kev*_*son 13
跨平台开发.是单存在,和Java的有些更可预测有它的功能EXACTLY在更多平台上一样,你可以找到几乎任何平台上的C/C++编译器在那里,在那里你不能用C#.
同时链接到第三方库,虽然我确信有一种方法可以在C#中利用它们,但是你可以在C++中没有互操作(Marshaling等)的情况下利用它们.
编辑:最后一件事:可靠的内存管理.是的,你可以使用dispose(),try-finally但是,没有什么比知道当它从堆栈弹出时知道内存消失了.通过像RAII这样的技术,当您使用构造良好的类时,您将知道何时类释放资源,而不是等待GC发生.
使用P/Invoke 在.NET中几乎没有什么是不可能的(最明显的是设备驱动程序).
还有一些建议不使用.NET的东西(例如shell扩展,它被加载到打开文件对话框1的任何进程中).
最后,如果可能的话,在.NET中会有更难的事情(例如,创建聚合FTM的COM组件).
1如果该进程已使用不同版本的.NET,则会产生问题.这将在以后得到缓解,.NET 4能够支持运行时的并排实例.
我不确定你是在谈论语言功能还是应用程序.我的答案是应用程序/组件.
实际上,在C#中你只能用C++做两件事.
这里最值得注意的项目是设备驱动程序.这是一个只接受本机组件的框架,无法插入托管组件.
对于其他所有事情,可以在C#中使用与C++相同的功能.很多情况下你根本就不想这样,本机解决方案更好.例如,可以通过不安全的代码或IntPtr来管理和操作C#中的内存.它不是那么简单,一般没有理由.