Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2010, 02:15   #1
Zhigool'
Пользователь
 
Регистрация: 11.07.2010
Сообщений: 29
По умолчанию Проблема с примером из учебника...

Здравствуйте, Господа и Дамы!
Вот решил осваивать win32 api и в первом же примере выскакивает ошибка.
Сначала о конфиге: WinXP 32-bit (под WmWare 7 на Win 7 32-bit), VS 2008.
Пример:
Взят из Ю.Щупак "Win32 эффективная разработка приложений"
Код:
#include <windows.h>

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	MessageBox (NULL, "Hello, Win32 world", "Hello from HELL", MB_OK);
	return 0;
}
Сообщение об ошибке:
... мои документы\visual studio 2008\projects\window\window\window. cpp(9) : error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [19]' в 'LPCWSTR'

Прошу помощи!

Последний раз редактировалось Stilet; 15.01.2011 в 20:58.
Zhigool' вне форума Ответить с цитированием
Старый 18.07.2010, 03:31   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

либо MessageBoxA, либо конвертируйте строки в Юникод(L"Строка в Юникоде"), либо отключите Юникод в свойствах проекта.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.07.2010, 12:31   #3
Zhigool'
Пользователь
 
Регистрация: 11.07.2010
Сообщений: 29
По умолчанию

2 Пепел Феникса
Не получается:
"1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
1>C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\Window\Debug\Window.e xe : fatal error LNK1120: 1 неразрешенных внешних элементов"
Zhigool' вне форума Ответить с цитированием
Старый 18.07.2010, 12:43   #4
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

потому, что не найдена точка входа. какой раз говорю об этом... в опциях проекта у вас остался юникод, а точка входа опеределена как WinMain. По умолчанию в юникод проекте точка входа задаеться _tWinMain.
подпись
liljon вне форума Ответить с цитированием
Старый 18.07.2010, 13:47   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

еще хуже.
тип проекта консольный, а не Win32 Application
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.07.2010, 20:12   #6
Zhigool'
Пользователь
 
Регистрация: 11.07.2010
Сообщений: 29
По умолчанию

2 Пепел Феникса:
Исправил, создал "приложение Win32" как пустой проект, добавил в него cpp файл с кодом из примера... но вот про кодировку можно поподробнее?
Zhigool' вне форума Ответить с цитированием
Старый 18.07.2010, 20:33   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Куда подрбнее? Написали же вам, стрки пишите как L"строка"
p51x вне форума Ответить с цитированием
Старый 19.07.2010, 15:40   #8
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

На форуме где-то валяется книга Рихтера, там про юникод и строки все крайне доступно написано.
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 15.01.2011, 20:04   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

В меню Проект выберите Свойства: ИмяПроекта. В левой области в поле Свойства конфигурации выберите Общие. В правой области в поле Набор знаков выберите Использовать многобайтовую кодировку. Нажмите кнопку ОК для сохранения изменений.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сново просьба помоч с примером.f(x)=3х^3..... blackstersl Свободное общение 2 14.02.2009 15:43
Проблема с книжным примером and277 Общие вопросы C/C++ 1 27.01.2009 16:58
Помогите с лёгким примером)) juzam Паскаль, Turbo Pascal, PascalABC.NET 7 16.12.2008 20:35
помогите с примером Briz Помощь студентам 5 23.10.2007 14:34
помогите разобраться с примером strannik Win Api 2 20.12.2006 20:19