如果我不用vs110_xp编译DLL会怎么样?

时间:2014-01-28 15:11:59

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

默认情况下,Visual Studio 2012不支持Windows XP,也不支持Windows Server 2003.在Update 1之前,根本不支持这些操作系统。现在使用Update 1,我可以使用Visual Studio 2012创建针对Windows XP和Windows Server 2003的应用程序,方法是选择使用vs110_xp toolset。大。

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

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

1 个答案:

答案 0 :(得分:3)

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

非常重要的改变顺便说一句,appcompat表示Windows打开可执行文件,说它们可以在旧的Windows版本上运行,这是相当麻烦的。如果你关心,Aero谎言很难处理。 CRT也发生了很大变化,使用了更多的winapi功能,这些功能仅在6.0及以上版本中可用。 Update1版本在发现它们丢失时会逐渐消失。