По умолчанию UNICODE
определено в Visual Studio 2010. Либо вызовите MessageBoxA
вместо использования MessageBox
для определения, либо передайте литерал с широкой строкой ( L"Первая программа Win32" и L"Заголовок окна") или, если вы действительно хотите иметь возможность строить без определения UNICODE
, используйте макрос _T вокруг строковых литералов: _T ("Первая программа Win32") (это то же самое, что L «Первая программа Win32», когда определен UNICODE, но это будет «Первая программа Win32», если UNICODE
не определено).
Для получения дополнительной информации о UNICODE
и о том, как это влияет на то, как называются API, см. Эту ссылку: http://msdn.microsoft.com/en-us/goglobal/bb688113.aspx. В частности, в разделах ниже «Создание приложений Win32 Unicode».
Примечание: все операционные системы Windows, поддерживаемые сегодня Microsoft, являются родными для Unicode. Я бы рекомендовал всегда отдавать предпочтение «широкому» API. В этом случае MessageBoxW
, то есть то, что MessageBox
определено, когда установлено UNICODE
. Дни использования макроса _T и компиляции без определения UNICODE
должны быть позади.