【问题标题】:What if I don't compile DLLs with vs110_xp?如果我不使用 vs110_xp 编译 DLL 怎么办?
【发布时间】:2014-01-28 15:11:59
【问题描述】:

默认情况下,Visual Studio 2012 不支持 Windows XP 和 Windows Server 2003。在 Update 1 之前,这些操作系统根本不受支持。现在有了 Update 1,我可以通过选择使用 vs110_xp toolset 来使用 Visual Studio 2012 创建面向 Windows XP 和 Windows Server 2003 的应用程序。太好了。

我想知道当我忘记这样做时会发生什么? “不支持”是什么意思?可执行文件只是don't run:“...不是有效的 Win32 应用程序。”

但是当我在 XP 上使用此类 DLL 时会发生什么?我似乎找不到任何有关此的信息。不幸的是,我目前无法尝试。有人发现具体问题吗?

【问题讨论】:

    标签: c++ winapi visual-studio-2012 windows-xp windows-server-2003


    【解决方案1】:

    程序根本无法启动并立即失败。 VS2012 最重要的变化是它现在在/SUBSYSTEM linker option 中指定了Windows 6.0 版本。 Window XP 会注意到这一点,它是 5.02 版,举手并以 ERROR_BAD_EXE_FORMAT 导致 EXE 启动请求或 DLL 加载失败。

    顺便说一句,相当重要的变化,Windows 为可执行文件打开的 appcompat 填充程序说它们是在旧 Windows 版本上工作的,这是相当麻烦的。如果您关心的话,航空谎言很难处理。 CRT 也发生了很大变化,使用了更多仅在 6.0 及更高版本中可用的 winapi 函数。 Update1 修订版在发现它们丢失时会跛行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多