Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2010, 23:10   #1
Aleksandr_Yanov
Подтвердите свой е-майл
 
Регистрация: 13.06.2010
Сообщений: 39
Радость Win32 API. VS2008. Как создать приложение win32 в vs2008?

Ребят,подскажите пожалуйста! Очень срочно нужно.
Взял недавно книгу WIN32 API Ю.Щупака,в ней описана работа под VS 6.0 И VS NET,но те способы которые описывает автор они не действуют в VS2008 Professional(90дней)
Код автора такой:
Код:
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	MessageBox(NULL, "Hello, Win32 world!", "Hello from Message Box", MB_OK);

	return 0;
}
Может кто то сталкивался с такой проблемой,будьте добры подскажите,что делать.Может ссылки есть.
В msdn есть описание пробного примера для win32 но оно опять же не линкуется под 2008 студий,ввобщем я так подход и не нашел.

p.s.:Стоит ли книгу назад сдавать в магазин?

Последний раз редактировалось Aleksandr_Yanov; 11.09.2010 в 23:14.
Aleksandr_Yanov вне форума Ответить с цитированием
Старый 11.09.2010, 23:15   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

по умолчанию в студии 2008 Юникод, поэтому:
1)либо в настройках проека отключите его
2)используйте явно ANSI версии функций(в вашем примере MessageBoxA)
3)используйте Юникод строки(пример
Код:
MessageBox(NULL, L"Hello, Win32 world!", L"Hello from Message Box", MB_OK);
)а если захотеть можно TChar юзать.

прежде чем кого то винить может стоит понять причину ошибок?
(и как минимум стоило их выложить тут)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.09.2010, 23:31   #3
Aleksandr_Yanov
Подтвердите свой е-майл
 
Регистрация: 13.06.2010
Сообщений: 39
По умолчанию

Благодарю!!
Попробовал все Ваши варианты(всё работает,версию с unicodom отключал в Generar-Character Set),а в чём их отличие?
Или ссылку если есть на вот эту проблему?Хочется поподробней "раскопаться" с этим.

p.s.Дело в том что тут как бы сразу и не поймёшь,что дело в unicode.
Линковщик указывал путь в папку debug,просмотрел,оказалось безинформативно для меня

Последний раз редактировалось Aleksandr_Yanov; 11.09.2010 в 23:35.
Aleksandr_Yanov вне форума Ответить с цитированием
Старый 11.09.2010, 23:39   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

ANSI-это однобайтный набор символов, один символ занимает 1 байт, тип char(из коренных), в нем могут быть проблемы с разными языками(не все влазит в байт), да и нужно знать какой набор символов использовать.(так как выходит либо русский, либо немецкий, англ есть всегда)
Unicode-двухбайтный набор, один символ это 2 байта, тип wchar_t/short, в имеющиеся два байта можно записать символ любого языка, причем не нужно помнить какой набор символов используется.

Юникод функции работают также быстрее(начиная с Win2000, в 98 вообще почти не работают), так как A-версии функций переводят данные в Юникод, а потом уже вызывают W-версию.

почитать можно в гугле, а можно у Рихтера(книгу запямятовал, вроде разработка эффективных Win32-приложений)

почему надо ставить L перед строкой/символом?
потому что компилятор по умолчанию рассматривает строки как ANSI, ну а с помощью L мы указываем ему что строка Unicode
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.09.2010 в 23:43.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.09.2010, 23:59   #5
Aleksandr_Yanov
Подтвердите свой е-майл
 
Регистрация: 13.06.2010
Сообщений: 39
По умолчанию

Благодарю!
Aleksandr_Yanov вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
win32 API.Visual Studio 2008.Создание проекта Win32 Aleksandr_Yanov Visual C++ 2 12.09.2010 12:09
Как создать win32 приложение в Visual C++? Сергей089 Помощь студентам 3 19.02.2010 23:40
Простейшее приложение на базе Win32 API nevidimka Помощь студентам 2 24.09.2009 09:35
как создать второй экземпляр формы на с++ в vs2008 molodoy-pirat Общие вопросы .NET 1 30.04.2009 08:56
Как сделать приложение в стиле Office 2007 в VS2008 ? Derk Общие вопросы .NET 4 22.12.2008 12:26