我想创建一个简单的Win32应用程序的单个可执行文件,该应用程序必须能够在Windows XP和Windows Vista/2008上运行。管理Windows XP和Vista/Server 2008之间的Windows API差异
由于Vista工作方式的一些变化,必须进行一些额外的Win32 API调用才能使程序正常工作,就像它在XP上一样。
目前我检测应用程序是否运行在比XP更新的Windows版本上,并根据需要调用额外的win32函数。在Vista和Server 2008上运行时可以正常工作,但在Windows XP上运行时会失败。
在程序启动时的Windows XP上,我收到错误消息:程序入口点ShutdownBlockReasonCreate无法位于它们的动态链接库USER32.DLL中。这发生在我的任何代码开始执行之前,并且在XP上运行时没有任何代码路径应该调用该函数。
我真的很想只有一个在XP和Vista上都可用的可执行文件。如果可能的话,我不想有条件编译,并有两个可执行文件。
解决此问题的最佳方法是什么?