我試圖將文件的擴展名篩選器應用於文件的選擇對話框。Winapi GetOpenFileName擴展名篩選器不工作
這樣工作的:
ofn.lpstrFilter =
"(*.exe) Windows Executable\0*.exe\0"
"(*.ini) Windows Initialization file \0*.ini\0"
"(*.dll) Dynamic Link Library \0*.dll\0"
"(*.lib) Windows Library file \0*.lib\0"
"(*.conf) Windows Configuration file \0*.conf\0";
但是當我指定擴展動態過濾器,通過參數,它失敗了,過濾器不會出現在組合框中:
LPCSTR filter = (LPCSTR)extFilter; //Contains string "bmp"
stringstream s;
s << "(*.exe) Windows Executable\0" << "*." << filter << "\0";
string ffilter = s.str();
ofn.lpstrFilter = ffilter.c_str();
我是大人問題是在字符串轉換中,但無法弄清楚。
沒有測試,我猜測分隔符''\ 0''可能會傷害'stringstream'。如果是這樣,如何使用另一個字符(如'$')作爲分隔符,並在完成構建過濾器之後,將字符串複製到'char'數組並將'$'s轉換爲''\ 0''? – MikeCAT
您是否試過在調試器中查看'ffilter'來查看它包含的內容? –
這裏的任何消息?人們正在等待... :) –