Visual C++/C#中的WinForms编程与Visual C++(MFC)中的Windows编程有何不同

1 c# mfc visual-c++

如何使用visual c ++/c#中的winforms编程与visual c ++(MFC)中的windows编程不同.

另外,我想知道C#是否足够强大,可以像其他形式一样进行Windows编程.

Mar*_*ner 7

我不确定是否有人能对这个问题给出一个答案,我可以试着指出一些差异:

  • C#和C++完全不同:内存管理,包结构,类布局,事件/委托,泛型/模板......甚至编写非GUI应用程序在C++和C#中也完全不同.如果没有为GUI开发设计,C#语言的许多功能都非常有用.

  • 与MFC相比,Winforms具有非常好的视觉设计器支持.对于95%的应用程序,使用winforms可以提高效率.对于自定义控件(您自己的或第三方)尤其如此

  • 另一方面,MFC提供了更多的框架支持(文档/视图结构等).

  • 对于某些应用程序,MFC应用程序似乎更具响应性.在大多数情况下,可以优化winform应用程序以获得相同的性能,但这高于平均winforms开发人员级别(通常低于MFC程序员的知识级别).

  • MFC比Winforms更直接地封装WIN32 API.在某些情况下,您甚至需要直接从winforms访问WIN32 API.然后,并不总是清楚(并没有很好地记录),如何做到这一点.同样,典型的winforms程序员对WIN32 API的了解少于MFC程序员,所以在这些情况下他会更容易遇到麻烦.

  • 我认为winforms得到了很好的支持,您可以完全解决所有GUI/NON-GUI任务.对于大多数任务,编写C#程序会更容易.

我敢肯定,有更多的赞成/反对的论点,我只是注意到我想到的一些......


Toa*_*oad 6

有一些值得注意的差异:

  • 你最终会更有效率,因为它更容易做(.net)
  • 该语言可以帮助您制造许多常见错误(空指针,溢出,泄漏)
  • 框架很多(我的意思是很多)比MFC更干净
  • 从本质上讲,你几乎可以做任何事.通过直接win32 DLL调用(或使用其他人制作的包装器或库),您需要做的事情最少见0.01%