C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Комментарий к шагу 340 / Комментарии к статьям / Разное

Комментарий к шагу 340

Здравствуйте. Если использовать приведенный в шаге 340 (Visual C++ ->MFC) пример, то он корректно отработает только один раз. Во второй раз произойдет крах программы. Все дело в описании функции, которая вызывается по событию. Описание функции должно быть следующее:

afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);

Вот выдержка из статьи "Как пережить release-версию" Автор: Dr. Joseph M. Newcomer "Вы обязаны возвращать значение и должны передавать параметры, как указано (и вы обязаны использовать типы WPARAM и LPARAM, если Вам нужна совместимость с 64-битным миром; определенное количество людей, "знавших", что WPARAM означает WORD и просто писавших (WORD, LONG) в своем коде под Win16, расплачивались при попытке перейти на Win32, где это, в действительности, (UNSIGNED LONG, LONG). И все опять будет иначе в Win64. Так зачем делать неправильно, пытаясь показаться умным ?). Заметим, что если вы не используете значения параметров, то вы не даете им имен. Таким образом, ваш обработчик OnMyMessage написан следующим образом

LRESULT CMyClass::OnMyMessage(WPARAM, LPARAM)
{
	...тут что-то делаем...
	return 0; // логически void, всегда 0
}

Вот ссылка на оригинал статьи http://www3.pgh.net/%7Enewcomer/debug_release.htm

С Уважением, Дмитрий
тел.(062)3320209,3320210 (06242) 4-03-53

Автор : Dmitrenko Dmitry.