|
4 / 8 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
О сути организации WinAPI03.04.2013, 15:22. Показов 1854. Ответов 19
Метки нет (Все метки)
Вступление.
Есть такие люди, которые могут довольно сносно понимать иностранный язык, но при этом довольно коряво на нём разговаривать или не разговаривать вообще. В том, что касается WinAPI, я как раз из последних не говорящих... Дело происходит так. Беру VS 2010, запиливаю в проект файл типа windows.h, начинаю пытаться писать, но ловлю себя на том, что не понимаю самих внутренних механизмов, самой идеи организации WinAPI. К примеру, в каких-то статьях используют WinMain(); , в иных - wmain (с последней ясно - это для расширенного набора символов), но не это самое страшное. Страшное - в туче, тьме тьмущей #define'ов, о которых Страуструп пишет, что они в большом количестве есть недостаток программиста, и справедливо это аргументирует, приводя в том числе и случай, когда без оных не обойтись. Проблема в том, что есть тучи примеров WinAPI, но ни один из них не говорит о том, почему именно так, а не иначе, и как это понимать, как это положить в мозги таким образом, чтобы оно легко вынималось. Где-то в сокращениях берут по 3 буквы, где-то по одной, где-то регистр вообще не берут во внимание, а где-то акцентируют им именование... Не говоря при этом о самих принципах построения программ таким образом, чтобы в дальнейшем можно было писать, опираясь только на понимание самой идеи. А между тем, если бы идеи не было, то сами программисты windows совершенно точно не смогли бы создать например C#, кодирование в котором относительно просто по причине довольно продуманной структуры. Они просто терялись бы в собственном коде. Тем не менее, стоит взяться за что-то пониже, поближе к сути - и начинается чехарда... я не въезжаю. MSDN не даёт такую информацию... нагуглить её тоже довольно сложно - тут просто запроса недостаточно... В общем, буду благодарен, если кто-то покажет, куда идти, чтобы понять, что есть что. И думаю, чо такое окажется полезным для многих здесь.
1
|
|
| 03.04.2013, 15:22 | |
|
Ответы с готовыми решениями:
19
Напечатать приглашение всем членам на очередное заседание указанной организации. Задается только вид организации, место и время сбора. Виньет каложной сути Докопаться до сути TWindowsMediaPlayer |
|
4 / 8 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
| 03.04.2013, 15:42 [ТС] | |
|
0
|
|
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 815
|
||||||
| 04.04.2013, 19:01 | ||||||
|
Stranger777, WinAPI это довольно корявый интерфейс с множеством костылей. Во многом из-за требований совместимости версий (так же, как например прикольные форматы сегментных регистров в архитектуре процессоров IA32 с разбросанным по всей структуре полем адреса, например).
WinMain по умолчанию - это вообще точка входа в wincrt library. Можно переопределить и писать хоть EtoMoyaTochkaVhoda()- для студии:
Про дефайны - нужно учитывать, что "родной" язык WinAPI - это Си, а никак не C++.
1
|
||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 11.04.2013, 17:36 | ||||
|
А на сами буквы внимания тоже обращают? Идентификаторы, различающиеся регистром, различаются согласно правилам языка.
Добавлено через 2 минуты Добавлено через 3 минуты Добавлено через 2 минуты
0
|
||||
|
|
|
| 11.04.2013, 19:25 | |
|
WhiteP, и почему же он корявый? Совместимость версий работает на Ура.
И что значит "с разбросанным по всей структуре полем адреса" в архитектуре IA-32 ? Да и WinMain это не точка входа в "wincrt library", это точка входа в программу пользователя, как и main. Только первое для GUI приложений, а второе для консольных. Не вводите людей в заблуждение.
0
|
|
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 815
|
||||
| 11.04.2013, 20:41 | ||||
1
|
||||
|
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 815
|
||
| 11.04.2013, 20:55 | ||
|
0
|
||
|
4 / 8 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
| 12.04.2013, 01:34 [ТС] | |
|
Промежуточные итоги неспешных поисков: http://www.charlespetzold.com/books.html - замечательность ссылки состоит в том, что некоторые книги снабжены простыми работающими примерами с исходниками, прямо с сайта, так что полезным может оказаться многим, кроме меня. Глюки - величайшая проблема всех программистов всех времён - есть и в самих компиляторах. Я всегда полагал, что уж это - то, что должно быть выточено идеальнейшим образом, до мельчайших деталей, а оказывается, что генераторы промежуточного кода и разнообразные анализаторы - по словам самих разработчиков оных - во многом полагаются на этакий авось пространных представлений эвристики. Их бин был разочарован, когда при изучении "Книги дракона" наткнулся на такие печальные строки.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 12.04.2013, 12:25 | ||
|
Ой не могу. Прям он ни разу про глюки винды не слышал.
Добавлено через 3 минуты
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 12.04.2013, 12:30 | ||
|
0
|
||
|
Супер-модератор
|
||
| 12.04.2013, 12:38 | ||
|
Не надо про безглючность ОСей, с этими сказками - в HolyWars, там много слушателей. От темы не отклоняемся...
1
|
||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||
| 12.04.2013, 12:55 | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 14.04.2013, 16:38 | |||
|
Добавлено через 1 минуту
0
|
|||
|
4 / 8 / 0
Регистрация: 08.02.2013
Сообщений: 52
|
|
| 14.04.2013, 17:22 [ТС] | |
|
taras, фраза была употреблена в том смысле, что если ошибки не на поверхности - это не значит, что их нет в принципе. Вообще, как ни старайся, на самом деле большую программу без ошибок написать трудно. Сортировки, массивы и прочая чешуя - это элементарно, но как только попытаешься построить сколько-нибудь богатый набор классов - косяки становятся неизбежными, просто потому, что человек по природе своей не идеален. И один думает - хорошо будет так и это очевидно, а другой - эдак, а в результате у семи нянек дитя без глаза. Та же спецификация PE от Microsoft - поставляется без гарантии полной корректности, хотя казалось бы - достаточно просто не лениться последовательно документировать формат.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 16.04.2013, 07:02 | |
|
Ну лажа с форматами - это отдельная история, иногда описаловки двух не совместимых форматов одного автора с одним расширением оказываются просто перепутаны, но чтоб это понять, надо открыть хексом, или блокнотом файл, сохранённый оригинальной приладой. Но объясните мне, какое это имеет отношение к проге? Если я в текстовике запишу координаты дачи посреди озера, или реки, так в реале дом на этой даче станет кривым? Читайте исходник, вытаскивайте оттуда все форматы и соглашения. Но в винде даже это не возможно.
Добавлено через 5 минут А чтоб по-настоящему понять WinAPI, надо не зная английского с преподавателем-англичанином изучить венгерский. Иначе идея на языке с явной типизацией давать всему подряд префиксы останется неясной.
0
|
|
| 16.04.2013, 07:02 | |
|
Помогаю со студенческими работами здесь
20
Хочу добраться до сути Не могу понять сути алгоритма Не понимаю сути задания и реализацию Убернуб не понимает сути производных Не понимаю сути AObject * (*create)() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|