我有一个非常简单的DLL写入非托管C,我从我的应用程序访问。我最近切换到Visual Studio 2010,DLL从55k降到35k,没有代码更改,现在它将不再在Windows 2000中加载。我没有更改任何代码或编译器设置。我有我的定义设置为0x0500,它应该包括Windows 2000支持。有没有人遇到这个,或有什么想法可以做什么?
Visual Studio 2010 cannot build binaries that run on Windows 2000.实际上比
they won’t run on Windows XP RTM or Windows XP Service Pack 1 either更糟糕。这是因为VS2010的C运行时库需要直到SP2才能使用的EncodePointer API。
如果您要支持早期版本的Windows,似乎您已经安装了VS2008。您可以将整个项目移动到Visual Studio 2008,也可以从Visual Studio 2010项目中定位vc90(Visual Studio 2008)工具集。有关后一种方法的更多细节,请参阅我的相关问题here。