При попытке отобразить диалог win32 с помощью функции MessageBox текст, похоже, отключается, но, как ни странно, это происходит только при создании для выпуска, что оставляет меня полностью озадаченным.Win32 MessageBox отключает текст
код это происходит с:
wchar_t filepath[ MAX_PATH ];
GetModuleFileName(NULL, filepath, MAX_PATH);
wchar_t* fnp = PathFindFileName(filepath);
wchar_t filename[MAX_PATH];
swprintf(filename, MAX_PATH, L"%ls", fnp);
printf("%ls", filename);
wchar_t* pwc;
pwc = wcsstr(filename,L".exe");
wcsncpy(pwc,L"_real.exe\0",10);
if(!file_exists(filename)){
wchar_t buff[] = L"unable to start because %ls cannot be found.";
wchar_t say[MAX_PATH+sizeof(buff)-3];
swprintf(say, wcslen(say), buff, filename);
MessageBoxW(NULL, say, L"Error", MB_OK | MB_ICONERROR);
return 0;
}
Это, кажется, исправили проблему, но из чистого любопытства, не случилось бы знать, почему это работает в среде отладки, не так ли? –
Неверное поведение, что происходит. Все может случиться, даже программа работает. –
Если вы не заботитесь о переносимости, вы можете использовать '_countof (say)' в качестве альтернативы. –