простое отображение окна сообщений в vc ++ - PullRequest
0 голосов
/ 03 марта 2011

Я только начал использовать vc ++ 2008. Я просто хочу увидеть одно сообщение (диалоговое окно). Я создал свой проект как приложение проекта win32.

Я написал код ниже, чтобы увидеть MessageBox

MessageBoxW(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);

но я получаю ошибку

ошибка C2664: «MessageBoxW»: невозможно преобразовать параметр 2 из «const char [28]» в «LPCWSTR»

Что это за ошибка? Что мне нужно сделать, чтобы увидеть простое окно сообщения.

Ответы [ 3 ]

4 голосов
/ 03 марта 2011

MessageBoxW принимает аргументы "широкой строки", поэтому добавьте L перед каждой строкой:

MessageBoxW(NULL, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
0 голосов
/ 27 сентября 2014

Вы используете входную строку ASCII для MessageBoxW вместо окна сообщения ASCII.Попробуйте использовать следующий код:

 MessageBoxA(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);
0 голосов
/ 03 марта 2011

Джерри уже объяснил, что причиной вашей ошибки компиляции является несоответствие типов (у вас есть функция, которая ожидает широкие строки и передает ей узкую строку).Я бы порекомендовал вам не использовать широкую или узкую определенную функцию (с суффиксом W или A), а вместо этого использовать не суффиксные (MessageBox в данном конкретном случае).Заголовочные файлы Windows API содержат код, который затем выберет правильную версию функции в зависимости от настроек сборки, т. Е. Если вы создаете Unicode-версии программного обеспечения или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...