我想創建一個簡單的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上都可用的可執行文件。如果可能的話,我不想有條件編譯,並有兩個可執行文件。
解決此問題的最佳方法是什麼?