MessageBox на самом деле является макросом - существует две версии: MessageBoxA, который принимает символы, и MessageBoxW, который принимает широкие символы. В зависимости от набора символов по умолчанию это будет версия A или W. По умолчанию это версия W.
Если вы go в свойствах проекта, в разделе «Общие», в нижней части диалогового окна, есть запись для набора символов. По умолчанию установлен Unicode (версия W). Просто измените его на MBCS (многобайтовый набор символов), и ваша программа должна построить после того, как вы удалили L из заголовка MessageBox
В качестве альтернативы оставьте его как Unicode и измените код на следующий. Обратите внимание, что вам не понадобится winmain, если он не использует GUI. Вы можете использовать MessageBox в консольном приложении.
int main()
{
srand((unsigned int)time(NULL));
int dice = (rand() % 20) + 1;
wchar temp[128];
wsprintf(temp, L"The die shows: %d", dice);
MessageBox(NULL, temp, L"Dice", MB_YESNO);
return 0;
}
Существует третье решение, использующее TCHAR, но мне придется поискать его перед публикацией.
Отредактируйте третье решение Если вы посмотрите в stdafx.h, вероятно, там уже есть tchar.h. Это характерные агности c определений. Вы можете использовать MessageBox с консольным приложением C ++ Win32.
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
srand((unsigned int)time(NULL));
int dice = (rand() % 20) + 1;
TCHAR temp[128];
_stprintf(temp, _T("The die shows: %d"), dice);
MessageBox(NULL, temp, _T("Dice"), MB_YESNO);
return 0;
}