Re: [問題] 關於不同平台下dll的問題
※ 引述《fuha (mimi)》之銘言:
: 有一個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
之前寫 MUI 的一個例子
概念大概就是用 GetModuleHandle 跟 GetProcAddress 來抓那個 API
HMODULE hDLL = NULL;
GetModuleHandleExW(0, L"kernel32.dll", &hDLL);
if (hDLL) {
typedef BOOL (__stdcall * SET_PREFERRED_UI_LANGUAGES_PROTOTYPE ) (
DWORD, PCZZWSTR, PULONG );
SET_PREFERRED_UI_LANGUAGES_PROTOTYPE fp_SetPreferredUILanguages =
reinterpret_cast<SET_PREFERRED_UI_LANGUAGES_PROTOTYPE>(
GetProcAddress(hDLL, "SetProcessPreferredUILanguages")
);
if (!fp_SetPreferredUILanguages) {
// do nothing
}
else {
fp_SetPreferredUILanguages(MUI_LANGUAGE_NAME,
userLanguagesMultiString,
&setLangCount);
}
FreeLibrary(hDLL);
hDLL = NULL;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.188.6
※ 編輯: Hubert 來自: 122.116.188.6 (06/29 17:10)
討論串 (同標題文章)