Начало знакомства с WinApi

Рано или поздно изучающие программирование под Windows столкнутся с необходимостью изучать основы WInApi. Я не буду сильно затрагивать этот раздел программирования, но думаю не лишним будет подсказать начало пути.
Первое и самое важное — нужна хорошая книга. Насколько я понял многие программисты WinApi используют книгу или учились по книге автора Ч. Петзолд
Программирование для Windows® 95

Не судите по обложке. Книга хорошая и примеры должны работать и в visual studio 2012 на Windows7 и скорее всего в следующих версиях Windows и следующих версиях C++ тоже должны работать.

В указанной книге первый пример — это аналог известного нам HelloWorld. Только вот состоит весь этот пример из более 60 строк кода. Немало, но это основы и самое начало знакомства с WinApi, которое подробно описывается. Я скачал бесплатную версию Visual Studio Express 2012 для Windows Desktop и стал пробовать запустить первый пример книги. Так как времена нынче не 90-е годы, то кое что поменялось. Если у вас, например Windows7 (как у меня), то создавать указанные в книге файлы не обязательно (Те, что с расширением bat и с MAK). В книге начинается с того, что нужно создать объектный файл, скомпилировать его из командной строки и т.д. В Visual Studio можно запустить пример и из редактора кода. Достаточно просто скопировать код и вставить в окно редактора кода.
Я создал проект Win32 (Файл—>Создать проект WIn32—>Нажал готово)
Открылось окно с кодом. Весь этот код затираем и вставляем код из книги.


Если пробовать выполнить, то во время компиляции может вылезти куча ошибок. Такой момент мне реально мешал. Додумался я, разумеется не своими мозгами, а почитывая форумы. Дело тут такое, что нужно убрать Юникод. Заменить его. В Visual Studio Express 2012 for Desktop это делается так
В меню (там где Файл — Изменить — Просмотр — Проект…) Выбираем проект, там в самом низу Свойства Win32Project (Это имя вашего проекта). Должно появится окно разделенное на левую и правую части. В левой части нам нужно Свойства конфигурации — общие, в правой части отыскать Использовать набор символов и выбрать вместо Юникода многобайтовую кодировку. Подтвердить.
Жмем Ctrl+F5 (или как вы там выполняете программы) и если все правильно, то видим, что запустилось окно с приветствием. Радуемся и приступаем к изучению книги.
Есть один момент, в строчке у меня отмечено, что возникает ошибка.Строчка взята из книги, но в коде она под комментарием. Я совсем не знаком с WInApi, но думаю одна строчка со звуком в самом самом начале изучения WInAPi не так уж критична. Главное есть с чего начинать и есть откуда черпать знания. Если кого-то этот момент сильно напрягает, можете спросить в чем дело, но выбирать лучше места, где грамотно ответят. Как я писал, о WinApi я почти ничего не знаю. Если у вас чуть более старая версия Visual Studio, то не беда, главное найти где убрать Юникод и остальное все делается аналогично.
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

3 комментария: Начало знакомства с WinApi

  • Аноним говорит:

    😛

  • А.Н.Оним говорит:

    Да уж много кода 😯

    • Аладдин говорит:

      Это немного кода, всего лишь маленький кусочек, вот я накидал код SDI однодокументныйкаркас и MDI каркас окон вот там намного больше кода и плюс ещё реализовать надо печать. Да лучше вообще голый WinAPI не юзать, а использовать MFC/WTL или Qt.
       
      Это немного кода, всего лишь маленький кусочек, вот я накидал код SDI одно-документный каркас и MDI-многодокументный каркас вот там намного больше кода и плюс ещё реализовать надо вывод на принтер “Что видишь, то и получаешь”. Тоже самое при разработке драйверов в старые времена на VxD далее на WDM для NT приходилось столько повторяющего legacy-кода вбивать, а вот сейчас обёртка WDF типа MFC и намного продуктивнее. Да лучше вообще голый WinAPI не юзать, а использовать MFC/WTL или Qt.

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор китайской клавиатуры

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок