看板 C_and_CPP 關於我們 聯絡資訊
有一個dll的問題想請問大家 我目前寫的程式要放在兩個平台上 一個是xp 一個是 win7下 因為我有使用到win7 系統的API 假設叫 abc 這個function 這個function 在 win7 裡的 USER32.DLL 現在我想要把同一套程式也用在XP裡 但是XP裡的USER32.DLL沒有這個function 所以我程式就算這樣寫 if (os == XP) { // do nothing } else if (os == WIN7) { // call abc function abc(); } 程式在XP執行的時候也會因為找不到abc function而初始化失敗 有辦法解決這個問題嗎 另外我是用static link方式 開發平台vs2005 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.189.231
nedbob:好像是用#if 在preprocessor處理 06/29 16:28
goodGG:拿明朝劍斬清朝官? 06/29 16:58
goodGG:先研究可行性吧。 06/29 16:59
pico2k:你只能用dynamic link... 06/29 18:24
dos792:這個故事告訴我們,沒事多用qt/wxwidgets之類的lib 06/29 20:09
dos792:以免 winapi改版,舊檔變廢物 06/29 20:10
UNARYvvv:看你如果願意編譯兩份就用條件編譯,不然就用動態連結吧 06/29 20:14
UNARYvvv:條件的方式是用 #if 判斷 _WIN32_WINNT 的值來決定是否把 06/29 20:18
UNARYvvv:使用新版 API 的程式碼編進去 06/29 20:18
UNARYvvv:動態連結的話就參考下方 Hubert 的回文囉 06/29 20:20
nedbob:原來原PO是要執行時判斷= = 誤解原PO 06/30 14:02