繁体   English   中英

将C ++应用程序从XP移植到Vista / 7

[英]Porting C++ Application From XP to Vista/7

我有一个为Windows XP编写的C ++应用程序,我想将其移植到Windows Vista / 7上使用。 它使用了一些MFC(用于串行I / O)和ATL(用于WMI),但是它主要使用了良好的Windows API。 移植应用程序时,我应该牢记哪些注意事项? 谢谢。

您可能根本不需要执行任何操作。 通常,为XP编写的应用程序可以在Vista和Windows 7上正常运行。(设备驱动程序和其他此类低级代码可能与此不同。)

您在Vista或Windows 7上运行时遇到问题吗? 你有没有尝试过?

一些可能的陷阱:

  • 安全性(您的应用是否假定它以管理员身份运行并且对计算机具有完全控制权?)
  • 外观问题(由于在Vista和7中窗口和控件外观的更改)
  • 硬编码的文件/目录路径
  • 运行64位版本的Windows Vista和7的用户比以前使用64位XP的用户多得多。 因此,如果您拥有32位应用程序,并且动态加载代码(DLL,ActiveX控件等),则可能会遇到32位相对于64位的问题。

应用程序兼容性工具包将帮助您发现您的应用程序可能已移植到Vista / Win 7的问题:

http://www.microsoft.com/downloads/zh-CN/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&displaylang=en

我赞同迈克尔·伯尔(Michael Burr)建议使用AppCompat工具包,因为这将发现大多数可能的问题。 一些一般的经验法则:

  • 除了在安装程序中之外,不要将数据写入HKLM。 使用HKCU。 在用户帐户之间切换时,对HKLM的任何读/写都可能被虚拟化,并且您可能会得到非常奇怪的行为
  • 不要使用硬编码的路径,请使用SHGetFolderLocation
  • 不要将数据写入系统区域,例如c:\\windowsc:\\program files等。如果确实需要写入所有用户都可用的数据,请使用CSIDL_COMMON_APPDATA (默认为c:\\ProgramData

假设您无论如何都会正确执行大多数操作,那么我认为您在支持Vista / Win7方面不会有任何重大问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM