|
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 10
|
|
Изучение WinAPI на С++07.01.2020, 15:29. Показов 5003. Ответов 33
Метки нет (Все метки)
Всем Здравствуйте. Я новичок на этом форуме. Занимаюсь С++ около двух лет и возникла необходимость в изучению WinAPI, чтобы создавать оконные приложения для Windows. В Интернете видел некоторых людей, которые говорят, что этот фреймворк сейчас изучать неактуально. Узнал про Qt-фреймворк, установил IDE, но столкнулся с проблемой компиляции, так как в программе изначально не было компиляторов для этого дела. Однако на Dev-C++, где я пишу всегда код, WinAPI адекватно функционирует. Следовательно, кроме этого фреймворка у меня нет ничего лучше для изучения, плюс его не надо нигде устанавливать, он идет вместе с виндой.
Итак, вопрос, стоит ли мне, пока что школьнику 9 класса, изучать эту штуку? И если стоит, то можете, пожалуйста, подкинуть хорошей литературы для его изучения либо видосов на русском.
0
|
|
| 07.01.2020, 15:29 | |
|
Ответы с готовыми решениями:
33
Изучение Winapi Изучение WinAPI Изучение WINAPI |
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,907
|
|
| 08.01.2020, 21:02 | |
|
Для общего развития изучить можно, знание низкого уровня windows не помешает. Но вот копать эту тему глубоко смысла нет, если нет желания лезть в недра windows с головой, а это занятие неблагодарное.
А дальше все зависит от применения winapi. Если речь про создание "просто окна" скажем для последующей работы средствами OpenGL, то есть куча кроссплатформенных библиотек: SDL, SFML, GLUT, GLFW, ... Если про создание "развесистого" GUI, то Qt, gtk А если для взаимодействия с системой, то многое реализовано в тех же SDL'ах, кое-что в других библиотеках, а для некоторых целей таки придется ознакомиться и с соответствующей областью API системы. Не обязательно, кстати, winapi: есть порт более универсального стандарта POSIX.
1
|
|
|
|
|||
| 08.01.2020, 21:31 | |||
|
всё зависит от того, нужны ли вам знания различных api, взаимодействующих с нативом. применять эти знания на практике/работе вам вряд ли придётся (сейчас все кому не лень юзают различные SDK, обёртки, или даже пишут свои), если конечно же вы не собираетесь стать "исследователем" ядра для совсем других целей.
2
|
|||
| 09.01.2020, 23:39 | ||
|
Я делал первые GUI-приложения на Builder C++ Borland в 2007 примерно. Помню тогда купил эту толстую книгу в книжном магазине в своём городе: Программирование в C++Builder 6 и 2006 (+ CD-ROM). Потом был WinAPI (на первой работе было требование такое), потом был Qt, далее изучал Java, а сейчас WinForms + C# (для desktop-кроссплатформы на Mono), Unity + C# (для desktop-кроссплатформы), WPF + C# (для Windows) и HTML5/Node.js + TypeScript (для web-кроссплатформы).
1
|
||
|
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 10
|
|
| 10.01.2020, 20:45 [ТС] | |
|
Так скажем, что я хочу начать с создания 2D игр на голом DirectX. Для старта ведь можно пока и WinAPI попользоваться. А потом, когда более менее будешь в этом курить, можно и на Qt перейти.
0
|
|
|
Заблокирован
|
|
| 10.01.2020, 21:16 | |
|
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,907
|
|
| 10.01.2020, 22:12 | |
|
LAKESHORE_, если именно игр, то можно и winapi. Все равно "программирование" сведется к копипасту магической последовательности создания окна да обработки ввода. "Магической" потому что она всегда практически одинаковая, а написать ее из головы нереально. Еще существенный плюс в этой области - не надо заморачиваться с системным GUI: для игры так и так придется писать свой. Кстати, в этом смысле переход на Qt ничего не даст, лучше переходить на SDL, SFML, GLUT и т.п. они попроще для понимания и меньше весят.
Плюсы winapi: 1. отсутствие зависимостей: не надо таскать со своей программой сторонние *.dll 2. работа с низким уровнем: будет какое-никакое понимание как работает система 3. возможность реализовать почти любой функционал, который там в принципе возможен. Плюсы сторонних библиотек: 1. отсутствие привязки к windows. Да, используя winapi вы избавляетесь от зависимостей... получая в зависимости всю операционку целиком. Использование же кроссплатформенных библиотек, как следует из названия, переносимость упрощает. 2. сокрытие деталей реализации. Вместо двух экранов кода создание окна займет три строчки 3. наличие ОС-независимой реализации системного функционала. Вплоть до загрузки картинок, буфера обмена и тому подобного. . В целом, я бы предложил пройти оба пути. Сначала создавать окно средствами winapi, потом то же самое, но через SDL. Отдельно на счет "офисного", системного GUI. Если планируется заниматься им, на предыдущий пункт просто не тратьте время. Изучение тех же Qt или gtk будет полезнее. А отсутствие вредных привычек из winapi избавит от необходимости переучиваться. Знания из SFML как раз мешать не будут (хотя и помощь вряд ли окажут), просто потому что другая область.
1
|
|
|
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 10
|
|
| 11.01.2020, 00:14 [ТС] | |
|
COKPOWEHEU, кстати, GLUT это от OpenGL? Я слышал про него.
Еще один вопрос: что посоветуете первым изучать, DirectX или OpenGL? Назовите плюсы и минусы одного и другого. Я слышал, что в OpenGL меньше возможностей, чем в том же DirectX. А так, спасибо за ответ!
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,907
|
|||
| 11.01.2020, 02:26 | |||
|
Какую именно из четырех перечисленных (и еще кучи не перечисленных!) выбрать - решать вам. Для себя я выбрал SDL, потому что там весьма развесистое взаимодействие с ОС - шрифты, картинки, звук, сеть, буфер обмена. Тот же GLUT гораздо примитивнее. Ну и на счет "мощности" библиотек: я всегда считал, что как раз разработчику нельзя доверять мощную машину - чтобы продуктами его труда могли пользоваться и другие люди, не плюясь на жуткие тормоза. Второе: чтобы достать до "дна" производительности библиотеки потребуется далеко не один год, а к тому времени будете знать эту тему гораздо лучше меня.
0
|
|||
|
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 10
|
|
| 11.01.2020, 11:25 [ТС] | |
|
COKPOWEHEU, наверное, попробую SDL освоить в будущем, если сами писали на нём.
Кстати, для своей GTA 1 действительно подойдёт OpenGL, если всё составляющее игры будут .png файлы?
0
|
|
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,907
|
|
| 11.01.2020, 13:51 | |
|
А почему нет?
Для загрузки *.png есть много разных библиотек. На счет производительности можно еще вспомнить wine, который транслирует DirectX в OpenGL - и разница быстродействия (считая кривые драйвера, ограничение реализации системного API и прочего) - десятки процентов. Бывает, что производительность в wine даже выше.
0
|
|
| 11.01.2020, 18:19 | |
|
Скину несколько примеров, которые выводят прямоугольник с текстурой с разными библиотеками создания окна. Для загрузки PNG с прозрачностью используется библиотека loadPNG. Для инициализации указателей на функции OpenGL - GLAD (не путать с GLUT). Для работы с матрицами - GLM.
В каждом примере есть папка Libs, где лежат библиотеки и они уже подключены к проекту Visual Studio. По идее, должно заработать в VS2019. Я не могу проверить, потому что C++ не ставил, ставил C#. Возможно "Platform Toolset" в настройках проекта нужно будет изменить на вашу версию VS.
Не торопясь изучайте онлайн книгу на Хабре и экспериментируйте: learnopengl. Урок 1.1 — OpenGL / Хабр - Habr Если с английским нормально, то лучше изучать оригинал: https://learnopengl.com/ (в РФ сайт недоступен, ставьте VPN, например, плагин для браузера Browsec)
0
|
|
|
45 / 33 / 15
Регистрация: 29.04.2014
Сообщений: 225
|
|
| 11.01.2020, 18:51 | |
|
Чарльз Петцольд "Программирование в Windows 95"
0
|
|
| 11.01.2020, 18:54 | |
|
Не по теме: 8Observer8, недоступный-англоязычный сайт можно ОфлайнЕксплорером выкачать, перевести, разместить на своем сайте или на юкозе - вот это да ( вы сможете (мне не надо) ) !
0
|
|
| 11.01.2020, 19:29 | |
|
0
|
|
| 11.01.2020, 19:50 | |
|
0
|
|
| 11.01.2020, 20:58 | |
|
0
|
|
| 12.01.2020, 14:38 | |||
|
Свои маленькие движки очень важно писать для меня. Я выбрал:
2
|
|||
| 12.01.2020, 14:57 | |
|
Не по теме: 8Observer8, молодца, надо сказать, что я примитивно рассматривал некоторые аспекты, не зря говорят утро вечера мудренее.
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2019
Сообщений: 10
|
|
| 12.01.2020, 16:36 [ТС] | |
|
8Observer8, а DirectX какой версии лучше использовать?
0
|
|
| 12.01.2020, 16:36 | |
|
Помогаю со студенческими работами здесь
20
С чего начать изучение WinAPI? Посоветуйте с чего начать изучение WinAPI winApi изучение
Изучение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|