mirror of
https://github.com/lltcggie/waifu2x-caffe.git
synced 2025-06-26 05:32:47 +00:00
GUI版の入力参照ダイアログで大量のファイルを選択した場合、強制終了するバグを修正 #36
This commit is contained in:
parent
4d0ba78909
commit
33776e5154
@ -1080,7 +1080,6 @@ UINT_PTR DialogEvent::OFNHookProcIn(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM
|
||||
{
|
||||
case CDN_SELCHANGE:
|
||||
{
|
||||
TCHAR szPath[AR_PATH_MAX] = TEXT("");
|
||||
HWND hParent = GetParent(hdlg);
|
||||
|
||||
stFindParam param;
|
||||
@ -1102,16 +1101,40 @@ UINT_PTR DialogEvent::OFNHookProcIn(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM
|
||||
|
||||
if (results.size() > 1)
|
||||
{
|
||||
TCHAR str[10000] = TEXT("");
|
||||
const size_t addSize = 5000;
|
||||
std::vector<TCHAR> str(10000);
|
||||
str[0] = TEXT('\0');
|
||||
|
||||
size_t nlen = 0;
|
||||
const auto funcC = [&nlen, &str, addSize](const TCHAR c)
|
||||
{
|
||||
while (str.size() <= nlen + 1 + 1)
|
||||
str.resize(str.size() + addSize);
|
||||
|
||||
str.data()[nlen] = c;
|
||||
nlen += 1;
|
||||
};
|
||||
|
||||
const auto funcStr = [&nlen, &str, addSize](const tstring &s)
|
||||
{
|
||||
while (str.size() <= nlen + s.length() + 1)
|
||||
str.resize(str.size() + addSize);
|
||||
|
||||
memcpy(str.data() + nlen, s.c_str(), sizeof(TCHAR) * s.length());
|
||||
nlen += s.length();
|
||||
};
|
||||
|
||||
for (const auto &p : results)
|
||||
{
|
||||
_tcscat_s(str, TEXT("\""));
|
||||
_tcscat_s(str, p.c_str());
|
||||
_tcscat_s(str, TEXT("\" "));
|
||||
funcC(TEXT('\"'));
|
||||
funcStr(p);
|
||||
funcC(TEXT('\"'));
|
||||
funcC(TEXT(' '));
|
||||
}
|
||||
|
||||
CommDlg_OpenSave_SetControlText(hParent, edt1, str);
|
||||
str[nlen] = TEXT('\0');
|
||||
|
||||
CommDlg_OpenSave_SetControlText(hParent, edt1, str.data());
|
||||
}
|
||||
else if(results.size() == 1)
|
||||
CommDlg_OpenSave_SetControlText(hParent, edt1, results[0].c_str());
|
||||
|
Loading…
x
Reference in New Issue
Block a user