2010-01-08 46 views
0

具體問題是,Windows上的條件變量的支持從Vista開始,對於早期版本的Windows(Windows XP),我有一個模擬條件變量代碼排序解決了這個問題。但是,我希望能夠在系統支持時調用本地條件變量API,並且只能在XP和更早版本上回退到我的版本。我試圖用GetVersionInfo API檢測Windows版本,但它仍然給我錯誤的開始時間(無法找到InitializeConditionVariable類的API條目)。如何根據Windows版本調用不同的Win API?

我不熟悉Windows編程,您如何很好地解決溫和的回退問題?

回答

5

,如果你想打電話可能會或可能不依賴於平臺的版本存在的函數,然後使用動態加載

LoadLibrary和GetProcAddress的

如果入口點存在,這些都會告訴你,然後讓你打電話它如果它確實如此

+1

您需要使用由GetProcAddress返回的指針來調用該函數,如果您在程序中保留常規函數調用,您仍然會得到該錯誤。 – 2010-01-08 22:10:25

+0

是的 - 我有點遺漏了OP(和Google)的細節。我確信他會把它解決出來 – pm100 2010-01-08 22:27:49

+0

是的,它可以幫助我。謝謝。 – liuliu 2010-01-08 22:37:32

相關問題