c# - 将 MFC (VC6) 应用程序迁移到 .NET 2008

标签 c# .net winapi visual-studio-2010 mfc

我想从执行此操作的开发人员那里得到非常具体的答案,并想知道你们是如何解决所面临的问题的。

我们有非常大的 MFC (VC6) 32 位应用程序已经存在 10 年了。现在我们想将它迁移到 .NET 非托管 64 位应用程序。这里我们有一些问题,我们的 UI 不应该改变,我们可能需要一些托管的 .NET 类以便于开发,在不影响体系结构的情况下如何使用非托管代码添加托管代码,许多 win32 API 可能会更改为新的 API,应该在XP, Vista, Windows 7 操作系统机器没有任何变化,这些事件应该不会耗费时间,新技术分析应该作为我们 MFC 程序员...

请分享您的经验,如果您有任何清晰的文档将非常有帮助...

注意: 为了清楚的理解,我再次重新措辞一些要点。我们想将我们的 VC6 native 代码 32 位应用程序迁移到具有 64 位支持的 VS2008(或 VS2010) native 代码(非托管 C++)。主要要求是现有 UI 不应有任何更改。另外,如果.NET 支持托管代码和非托管代码的组合,我们可以尝试在非托管C++ 环境中使用一些功能,如.NET remoting。我想向所有人传达的另一件重要的事情是,我们不会使用 C# 或从头开始编写任何代码。

最佳答案

我们已经完成了这些步骤(VC6 -> VS2005 -> VS2008 ->(很快)VS2010),大多数问题都与 API 的变化有关。

  • 发出大量警告消息的不安全字符串操作(strcpy 与 strcpy_s)(如果您不想全部修复它们,请使用 _CRT_SECURE_NO_WARNINGS 预处理器定义删除它们)

  • 更改了消息处理程序的原型(prototype)(返回 LRESULT、更改了 WPARAM 和 LPARAM,...)

  • 已弃用的 API(您很快就会发现它们,我认为 msdn 上有一个关于此的页面)

  • 对于标准 C++,编译器可能会更严格一些。

很难去具体...

但请查看此博客条目以获取更多信息:http://insidercoding.com/post/2008/08/20/Migrating-from-VC6-to-VC9.aspx

祝你好运。 最大。

关于c# - 将 MFC (VC6) 应用程序迁移到 .NET 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3353421/

相关文章:

c# - GetField 返回空值

c++ - SendInput (C++) 不起作用

c# - 将数组的数组序列化为单个 XML 元素

javascript - 断点没有在 javascript 文件中命中

.net - API Hooking,在 TerminateProcess 函数上发现意外句柄

.net - SQL Server 2008 的免费架构导出?

windows - ShowWindow 和 ShowWindowAsync 之间有什么区别?

C++:正确使用 LoadImage 和 SetCursor 函数

c# - 为什么以及如何避免事件处理程序内存泄漏?

c# - 在列系列 : Using dotNetCharting 上设置宽度