VS Win32 应用支持XP

最新做的Win32 应用,竟然要在XP上安装。激动,因为又会有各种神奇问题吧。

果然第一个就是提示“不是有效的Win32 应用”。

后来百度了一下,找到两种解决办法,目前只做记录,实际是否有效还需要验证。

  • 注册表编辑器中的lnkfile值被破坏(不知道什么情况会被破坏)

新建reg文件,内容如下,大意是先删除损坏的Inkfile,然后重建Inkfile项


cmd reg delete "HKEY_CLASSES_ROOT\lnkfile" /f

Windows Registry Editor Version 5.00

  [HKEY_CLASSES_ROOT\lnkfile]

  @="快捷方式"

  "EditFlags"=dword:00000001

  "IsShortcut"=""

  "NeverShowExt"=""

  [HKEY_CLASSES_ROOT\lnkfile\CLSID]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\lnkfile\shellex]

  [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers]

  [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\Offline Files]

  @="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

  [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}]

  [HKEY_CLASSES_ROOT\lnkfile\shellex\DropHandler]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers]

  [HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers\ShimLayer Property Page]

  @="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"

  [HKEY_CLASSES_ROOT\.lnk]

  @="lnkfile"

  [HKEY_CLASSES_ROOT\.lnk\ShellEx]

  [HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214EE-0000-0000-C000-000000000046}]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214F9-0000-0000-C000-000000000046}]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\.lnk\ShellEx\{00021500-0000-0000-C000-000000000046}]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\.lnk\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]

  @="{00021401-0000-0000-C000-000000000046}"

  [HKEY_CLASSES_ROOT\.lnk\ShellNew]

  "Command"="rundll32.exe appwiz.cpl,NewLinkHere %1"

  • VS支持编译到XP的应用

我使用的是VS2013,平台工具集如下设置,然后继续编译,打包成xp版本的应用。实际效果如何还需要检验。

猜你喜欢

转载自blog.csdn.net/moyebaobei1/article/details/81873386