草庐IT

c# - 将大型 MFC 应用程序迁移到 WPF/.NET 有哪些技术?

我目前正在开发一个非常大的遗留MFCMDI应用程序。它有大量的UI元素——可停靠工具栏、自定义树控件、上下文菜单等。它是一个图像处理应用程序,因此主视图使用DirectX和OpenGL呈现自己。该产品大约有10年的历史,这里的首要任务之一是更新它的外观和感觉。知道Microsoft在提供C++/MFC和.NET之间的互操作性方面做得很好,我认为逐步迁移代码库是有意义的。我现在正在努力的是从哪里开始。一种方法是使用WPF淘汰MFC框架,并尽可能多地重用C++代码。这将使我们能够最大限度地发挥WPF架构的优势,但也意味着我们需要很长的开发周期才能再次完全发挥作用。另一种方法是将MFC控件一

c# - C++ MFC 与 .NET?

我的同事正在使用VisualStudio2002并使用C++MFC。我正在用C#开发。之前没出过什么问题,但是现在质疑我们的客户是否真的应该在不同的环境中开发。我的同事认为(当然)我应该转向C++MFC。我认为他们可以使用.NET而不是MFC。学习MFC有什么意义吗?感觉有点过时了,还是我错了?与MFC相比,反对和支持.NET的论据是什么?编辑:我们正在为核工业开发过程系统和辅助应用程序。主要应用程序是一个仿真器,它模拟旧计算机系统并使用C++/MFC。这是非常关键的,也许核心应该仍然是原生C++。但是模拟器和所有周围应用程序的GUI并不是特别重要。是否有任何真正的理由应该替换现有的M

c++ - 如何将 Int 转换为 CString?

我可以使用_ecvt将Double转换为CStringresult_str=_ecvt(int,15,&decimal,&sign);那么,有没有像上面那样将int转换为CString的方法? 最佳答案 这是一种方法:CStringstr;str.Format("%d",5);在您的情况下,请尝试_T("%d")或L"%d"而不是"%d" 关于c++-如何将Int转换为CString?,我们在StackOverflow上找到一个类似的问题: https://s

c++ - 如何将 Int 转换为 CString?

我可以使用_ecvt将Double转换为CStringresult_str=_ecvt(int,15,&decimal,&sign);那么,有没有像上面那样将int转换为CString的方法? 最佳答案 这是一种方法:CStringstr;str.Format("%d",5);在您的情况下,请尝试_T("%d")或L"%d"而不是"%d" 关于c++-如何将Int转换为CString?,我们在StackOverflow上找到一个类似的问题: https://s

c++ - 为什么 STL 容器优于 MFC 容器?

以前,我使用过CArray和CMap等MFC集合类。一段时间后,我切换到STL容器并使用了一段时间。虽然我发现STL好多了,但我无法指出它的确切原因。一些推理如:它需要MFC:不成立,因为我的程序的其他部分使用了MFC它取决于平台:不成立,因为我只在Windows上运行我的应用程序。(不需要可移植性)在C++标准中定义:好的,但MFC容器仍然可以工作我能想到的唯一原因是我可以在容器上使用算法。还有什么我在这里遗漏的其他原因-是什么让STL容器比MFC容器更好? 最佳答案 RonaldLaeremans,VC++产品部门经理,甚至sa

c++ - 为什么 STL 容器优于 MFC 容器?

以前,我使用过CArray和CMap等MFC集合类。一段时间后,我切换到STL容器并使用了一段时间。虽然我发现STL好多了,但我无法指出它的确切原因。一些推理如:它需要MFC:不成立,因为我的程序的其他部分使用了MFC它取决于平台:不成立,因为我只在Windows上运行我的应用程序。(不需要可移植性)在C++标准中定义:好的,但MFC容器仍然可以工作我能想到的唯一原因是我可以在容器上使用算法。还有什么我在这里遗漏的其他原因-是什么让STL容器比MFC容器更好? 最佳答案 RonaldLaeremans,VC++产品部门经理,甚至sa

c++ - Qt 应用程序性能与 WinAPI/MFC/WTL/

我正在考虑编写一个新的WindowsGUI应用程序,其中一个要求是应用程序必须响应迅速、加载速度快、内存占用少。我已经将WTL用于我以前根据这种类型的要求构建的应用程序,但是由于我在日常工作中一直使用.NET,WTL变得越来越痛苦。我对在这个应用程序中使用.NET不感兴趣,因为我仍然发现大型.NETUI的性能有所欠缺,但我有兴趣为UI使用更好的C++框架——比如Qt。在开始之前我想确定的是,我不会在性能方面为此后悔。那么:Qt快吗?我将尝试通过我想接近匹配的示例来限定问题:我当前的WTL应用程序是Programmer'sNotepad.我正在处理的当前版本的代码约为4mb,用于32位、

c++ - Qt 应用程序性能与 WinAPI/MFC/WTL/

我正在考虑编写一个新的WindowsGUI应用程序,其中一个要求是应用程序必须响应迅速、加载速度快、内存占用少。我已经将WTL用于我以前根据这种类型的要求构建的应用程序,但是由于我在日常工作中一直使用.NET,WTL变得越来越痛苦。我对在这个应用程序中使用.NET不感兴趣,因为我仍然发现大型.NETUI的性能有所欠缺,但我有兴趣为UI使用更好的C++框架——比如Qt。在开始之前我想确定的是,我不会在性能方面为此后悔。那么:Qt快吗?我将尝试通过我想接近匹配的示例来限定问题:我当前的WTL应用程序是Programmer'sNotepad.我正在处理的当前版本的代码约为4mb,用于32位、

c++ - 应用程序不能与 VS 2008 SP1 DLL 一起运行,以前的版本适用于 RTM 版本

自从我们从VisualStudio6切换到VisualStudio2008以来,我们一直在使用MFC90.dll和msvc[pr]90.dll以及私有(private)并行配置中的list文件,以免担心版本或将它们安装到系统中。在SP1之前,它运行良好(在我们的开发人员机器上仍然运行良好)。既然我们已经在SP1后进行了一些测试,我从昨天早上就开始拔头发了。首先,我们的NSIS安装程序脚本从redist文件夹中提取dll和list文件。这些不再正确,因为该应用仍链接到RTM版本。因此,我将_BIND_TO_CURRENT_VCLIBS_VERSION=1的定义添加到我们所有的项目中,以便

c++ - 应用程序不能与 VS 2008 SP1 DLL 一起运行,以前的版本适用于 RTM 版本

自从我们从VisualStudio6切换到VisualStudio2008以来,我们一直在使用MFC90.dll和msvc[pr]90.dll以及私有(private)并行配置中的list文件,以免担心版本或将它们安装到系统中。在SP1之前,它运行良好(在我们的开发人员机器上仍然运行良好)。既然我们已经在SP1后进行了一些测试,我从昨天早上就开始拔头发了。首先,我们的NSIS安装程序脚本从redist文件夹中提取dll和list文件。这些不再正确,因为该应用仍链接到RTM版本。因此,我将_BIND_TO_CURRENT_VCLIBS_VERSION=1的定义添加到我们所有的项目中,以便