Это первая часть в цикле, посвящённому «программированию на WinAPI» в Delphi.
WinAPI — он же «Windows API», он же «Win32 API», он же «Application Programming Interface», он же «Прикладной интерфейс программирования» — набор системных функций ОС; самый низкий уровень для любой прикладной программы, в том числе — программ Delphi. Именно на системных функциях основываются все другие функции прикладных программ. Программист может вызывать функции WinAPI, чтобы сделать что-то, не предусмотренное набором функций языка и его библиотеки поддержки. Как правило, работа с функциями WinAPI отличается от работы с функциями и классами языка высокого уровня.
Часто можно услышать вопросы, происходящие от отсутствия навыков работы с WinAPI. К примеру, «этот код работал на Windows XP, но не работает в Windows 7. Что делать?» (приведён совершенно ужасный код, полученный народным методом copy&paste с жёстко зашитыми константами и отсутствием даже намёка на обработку ошибок), «вот код, который получает путь к папке Мои документы, а мне надо — к рабочему столу» (человек не знает, где посмотреть описание функции, чтобы поменять «Мои документы» на «Рабочий стол») и даже просто: «подскажите функцию, чтобы сделать XYZ» — и так далее.
Не будьте беспомощными! Вы сами можете найти ответы на эти вопросы. А этот цикл постов поможет вам в этом.
Начнём мы с простого вопроса — где искать информацию.
Где?
Когда вы пишете код, то вы можете вызвать функцию из:
- Вашего кода
- Кода сторонних библиотек
- Delphi
- Системы (Windows)
Поэтому, когда вы задаёте вопрос вида «как бы мне найти функцию, которая делает X» или «где найти функцию Y», вы делаете следующее:
- Вспоминаете, не решали ли вы уже такую или подобную задачу. Ищете решение в своих исходниках (вы же не удаляете их?).
- Если у вас стоят сторонние компоненты или библиотеки (вроде JEDI), то вы ищете нужную функцию в их справочных системах, либо же открыв папку с установленными библиотеками и запускаете поиск по *.pas файлам и с ключевым словом. Кроме того, вы можете открыть подходящий по смыслу модуль и изучить его секцию interface.
- Аналогично поступаете и с Delphi — открываете справку и запускаете там поиск. Альтернативно, вы можете запускать поиск online по web-справке (например). Либо же открываете папку с исходниками Delphi (к примеру, C:\Program Files\Borland\Delphi 7\source\ или C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\source\) и ищете *.pas файлы с ключевым словом.
- Для поиска информации по системным функциям вы можете искать информацию в MSDN Library (MSDN — Microsoft Developer Network) — информационный сервис для разработчиков программного обеспечения (пример поиска). Это — первое место, где нужно искать информацию по системным функциям. MSDN может быть установлен локально (по платной подписке), но та его часть, что касается описания функций, доступна бесплатно — он называется Windows SDK (старое название: Platform SDK) и может быть скачан здесь (см. также раздел загрузок). Обычно имеет смысл брать последнюю версию. Microsoft Windows SDK — это набор утилит, примеров кода, документации, компиляторов, заголовочных файлов и библиотек, необходимых для разработки программ под Microsoft Windows. Windows SDK комбинирует и заменяет бывшие Platform SDK и .NET Framework SDK. Помимо Windows SDK есть SDK (SDK = Software Development Kit — набор для разработчиков программ) и «по отдельным направлениям»: к примеру, DirectX SDK, DirectShow SDK, Windows Media SDK, CAPICOM SDK, Visual Studio SDK и т.п. Состав и распределение SDK иногда меняется. К примеру, DirectShow SDK сейчас входит в состав Windows SDK. Конечно же, если вас интересует только документация, то она доступна и online.
Итого, у вас на руках есть такие источники информации:
- Документация
- Локальная справка
- Справка сторонних библиотек
- Справка Delphi
- Примеры программ
- Online
- docwiki.embarcadero.com
- msdn.microsoft.com
- Другие ресурсы и статьи
- Локальная справка
- Исходники
- *.pas файлы
- Ваши
- Сторонних библиотек
- Delphi
- *.h, *.c, *.cpp файлы
- Из комплекта Delphi (например: C:\Program Files (x86)\Embarcadero\RAD Studio\8.0\include\)
- Platform SDK или локальный MSDN.
- *.pas файлы
Как?
Ну, где искать — мы уже поняли. Остаётся вопрос — что и как искать?
Конечно, вам нужно искать по ключевым словам. Если вы знаете имя функции и хотите узнать о ней, то имя функции и будет ключевым словом. Если вы не знаете, какая функция вам нужна, то вам нужно выбрать одно или несколько слов, характеризующих то, что вы хотите сделать…
Функция не известна
Если вы ещё не знаете, какая функция вам нужна, то проводите поиск по общей области применения функции. К примеру, если вы хотите узнать положение указателя мыши, то запустите поиск по mouse functions или cursor functions. Вы также можете провести поиск по назначению функции, например: get mouse position или get cursor position.
После этого вы отфильтровываете результаты и находите свою функцию: GetCursorPos. Когда вы фильтруете результаты поиска, то, во-первых, обращайте внимание на URL. К примеру: social.msdn.microsoft.com — это форумы. А просто msdn.microsoft.com — это документация. Вас, конечно, в первую очередь интересует документация. Во-вторых, надо обращать внимание на контекст: в MSDN есть много всего, поэтому вам может попасться материал по Windows CE, Windows Phone, XBOX, Metro/RT и другим неинтересным вам (как программисту под Windows Desktop) вещам. Увидеть, что это за материал можно по разделу. К примеру:
- MSDN Library -> Development Tools and Languages -> Visual Studio 2010 Visual Studio Creating Windows-Based Applications -> Windows Forms -> Getting Started with Windows Forms -> User Input in Windows Forms Mouse Input in a Windows Forms Application -> Mouse Pointers in Windows Forms — это явно материал по .NET и Windows Forms.
- MSDN Library -> Development Tools and Languages -> XNA Game Studio -> XNA Game Studio 4.0 -> Writing Game Code Responding to User Input Working with Mouse Input -> Getting the Mouse Position (Windows Phone) — а это материал по Windows Phone.
- MSDN Library -> Mobile and Embedded Development -> Windows Mobile -> Windows Mobile 6.5 -> Windows Mobile Features (Native) -> Shell, GWES, and User Interface -> User Interface -> Mouse Mouse Reference -> Mouse Functions — а это материал по Windows CE/Windows Mobile.
- MSDN Library -> Windows Development
Windows Application UI Development -> Menus and Other Resources Cursors Cursor Reference -> Cursor Functions — а вот это как раз по Windows Desktop — т.е. то, что нам надо. Это можно подтвердить, если промотать в конец статьи и посмотреть требования к функции, где будет написано «Windows 2000 Professional [desktop apps only]».
Вероятно, проще всего искать информацию в локальном Platform SDK, установив фильтр, ограничивающий поиск только по интересующей нас платформе.
Примечание по MSDN: к сожалению, с выходом Windows Phone 8 и Windows 8, Microsoft унифицирует вид своих сайтов к стилю Metro. Это упрощённый, минималистский, плоский стиль. Старый вид (classic) уже сейчас трудно включить и скоро он станет более не доступен.
К сожалению, новый вид интерфейса не такой функциональный как старый. Вы не можете развернуть справку на всю ширину экрана, вы не можете изменить размеры дерева тем слева, но что хуже всего — вы не можете просмотреть список соседних тем на любых уровнях, кроме текущего. Это значительно затрудняет навигацию. К примеру, если вы откроете тему «Cursor Functions», то слева вы увидите текущий уровень (список функций), а также родительские ветки, но это и всё. Чтобы увидеть соседние темы на других уровнях (к примеру — не только функции курсора, но и меню, иконки, ресурсы и др. в разделе «Menus and other resources»), вам придётся щёлкнуть на ней.
Что ещё хуже — если вы просматриваете статью, которая есть только на английском (т.е. практически все), но язык UI у вас русский (что тоже почти всегда), то тема вообще не покажется в дереве тем, поскольку нет русского дерева тем для англоязычных статей. К счастью, именно эту проблему легко решить — просто переключив язык в английский (снизу сайта MSDN есть пункт выбора языка). Тогда покажется английское дерево тем, и наша тема будет показана в ней. Но проблемы с навигацией это не исправит.
![]()
Вид «Classic» (щёлкните для увеличения рисунка)
Та же тема с видом «Lightweight» (щёлкните для увеличения рисунка) Как видите, классический вид более функциональный, а упрощённый вид более приятный и современный.
Как переключить вид? В настоящее время это можно сделать исключительно в настройках своего профиля. Конечно, для этого вам нужно завести учётную запись на сайте Microsoft. Это — обычная учётка «Microsoft Account» (используется в Hotmail, SkyDrive, Xbox LIVE и т.п.). Нажмите «Sign in» в правом-верхнем углу для входа в ваш аккаунт. После входа в том же углу будут ссылки для смены языка и изменения предпочтений.
![]()
Правый-верхний угол после входа в свой аккаунт на MSDN Library Кнопка изменения предпочтений позволит вам переключаться между классическим и упрощённым видами. Как я уже сказал — я рекомендую переключиться на английский язык и вид Classic.
Ещё замечу, что иногда приходится проводить много поисков. К примеру, получение позиции курсора текстового ввода стоит искать по клавиатурным функциям (keyboard functions), функциям ввода (input functions), а также функциям Edit-а (edit control).
Если же найти нужную функцию не удалось — ничего страшного: спросите на форуме. Для того они и существуют. Не забывайте только, что ответ на ваш вопрос может заключаться не в одной единственной функции, а в комбинации из нескольких функций. Вообще, прежде чем спрашивать — погуглите. Скорее всего ваш вопрос уже кто-то задавал. Причём вам не обязательно искать вопрос на Delphi форумах — подойдёт любой (C++ или Basic). Главное — чтоб это был native код под Windows Desktop, а не .NET или Windows Phone.
Заметьте, что здесь мы говорим только про то, как узнать, что за функция вам нужна. На форумах вам могут дать ответ в виде готового кода. К нему нужно относиться крайне осторожно. Никто не будет заботится о вас и разрабатывать вам идеальный и 100% корректный и надёжный код. Вам просто приведут минимально работающий пример. Этот пример покажет, что и в какой последовательности нужно вызывать, но часто в упрощённых примерах не будет ни корректного освобождения ресурсов, ни правильной обработки ошибок. Поэтому, единственное, что вы можете сделать с таким кодом — выкинуть его. Посмотрите, какие функции там используются и напишите свой код, сами, делая всё правильно. Как правильно? А вот об этом мы сейчас и говорим…
Известная функция, константа или тип
Если вам уже известна функция, но хочется узнать, как её правильно вызвать, какие к ней можно передавать параметры, или даже просто узнать, где она определена (к примеру, вы написали с ней код, но компилятор Delphi ругается на «Undeclared identifier»), то вам нужно производить поиск по имени функции (ну или константы/типа).
Соответственно, вам нужно запустить два запроса: имя-функции site:docwiki.embarcadero.com и имя-функции site:msdn.microsoft.com. Если вы увидите функцию в первом списке — значит, это функция Delphi. Если во втором, то это функция системы. Иногда функция бывает в обоих списках. Это значит, что есть две разных функции с одинаковым именем: функция Delphi и системная. Как правило, в этом случае функция Delphi является оболочкой-переходником к системной, и вам нужно использовать именно её.
Когда вы нашли функцию — открывайте её описание. Там будет указано, где её искать. Для функций Delphi будет указан модуль. Например, SysUtils
, Classes
или Forms
. Это значит, что чтобы использовать эту функцию у себя в коде, вам нужно добавить модуль в список uses
. Модуль желательно добавлять последним по порядку.
Примечание: современные версии Delphi используют составные имена модулей. Например,
System.SysUtils
илиVCL.Forms
. Старые же версии Delphi используют простые идентификаторы (например,SysUtils
иForms
). Если ваша версия Delphi не понимает составной идентификатор, то просто удалите слова до точки, оставив только последнюю часть (т.е.System.SysUtils
->SysUtils
).
Для системных функций будет указана DLL и минимальная версия ОС, в которой есть эта функция. Что делать с этой информацией, я расскажу в следующей части. Тема этой статьи — где и как искать информацию.
Но там всё на английском!
Многие начинающие программисты не владеют техническим английским. Поэтому на попытку дать ответ «почитай описание функции, там всё написано» отвечают «я не понимаю, там всё на английском, а есть на русском?». К сожалению, ответ часто будет: «нет, нету». Как вы понимаете, у Microsoft, Embarcadero (да и любой другой компании) нет возможности переводить тонны технической документации на 100+ языков мира. Поэтому всегда есть документация только на английском. На другие языки эту документацию могут переводить энтузиасты. Проблема тут только в следующем:
- Неточный или неполный перевод. Энтузиаст-переводчик может как ошибиться, так и просто «залениться» переводить всё полностью.
- Устаревание информации. Microsoft/Embarcadero постоянно пишут новую документацию и обновляют старую. Последняя версия документации всегда доступна online или в последних версиях локальных справок. Однако же «армия» энтузиастов не располагает возможностью постоянно делать переводы. Как правило все «русскоязычные справки» написаны одним-двумя переводчиками один раз и далее не обновляются. Это значит, что произвольно взятая русскоязычная справка будет говорить о ситуации в прошлом и не быть актуальной.
Поэтому, всегда нужно по возможности предпочитать использовать оригинальную документацию производителя, которая почти всегда на английском. Что же делать, если английский вы не понимаете? На этот вопрос есть два ответа. Если программирование для вас — временное увлечение или хобби, то вы можете просто воспользоваться online переводчиком (например). Машинный автоматический перевод документации обычно достаточно понятен.
Если программирование для вас является нечто большим, чем просто хобби, либо если машинный перевод вас не устраивает — то вам нужно учить английский язык. Только так и никак иначе. К счастью, английский язык относительно прост. Для начала вы вполне можете обходиться словарём и интуицией. Для технических текстов этого достаточно, чтобы понять, про что говорится в описании функций.
Примечание по MSDN: часть библиотеки переведена на русский язык (она расположена по адресу msdn.microsoft.com/ru-ru/). Но это — лишь крайне малая часть всей документации. Чем новее и «моднее» тема, тем больше шансов, что она будет на русском. Т.е. .NET, Windows Phone, Metro — это можно найти на русском. Классические функции системы — нет.
Чем важно использование документации
Чтобы писать правильный и корректный код — надо знать, как нужно делать правильно. В свою очередь, это означает знание того, как надо работать с функцией. Какие требования нужны для её успешного вызова (например, нужно ли инициализировать в потоке COM (или иную подсистему) до вызова функции), как передать данные функции, как принять и интерпретировать результат, как освободить ресурсы после вызова, как выяснить, выполнилась ли функция успешно или завершилась с ошибкой (и если с ошибкой — то с какой именно и почему?) и так далее.
Как вы всё это узнаете? Читая описание функции и никак иначе. А описание функции — это официальная документация. Краткое «вызывай то-то» или куски кода — это не замена документации. И вот почему.
А если вы не будете читать описания функций, то в результате у вас будет получаться такой код.
Книги
Если вы чувствуете, что ваших сил и опыта недостаточно для самостоятельной работы с Windows API, я рекомендую попробовать обратиться к следующим книгам:
или
Заключение
В этой части я рассказал, как вы самостоятельно можете искать необходимую информацию. Рассказал о двух сайтах (docwiki.embarcadero.com и msdn.microsoft.com), а также способах поиска. Плюс привёл список книг. Надеюсь, теперь с этим проблем у вас не возникнет. Что делать с найдённой информацией — это тема последующих частей в серии.
В следующей части я расскажу, как подключать системные функции в свои программы.
Windows API — построен на С. Поэтому используются только функции и указатели, нет никаких классов С++.
Алгоритм создания окна приложения на WinAPI:
-
Регистрируем класс главного окна в Windows. (Для встроенных классов (например BUTTON) регистрация не нужна)
-
Создаем окно
-
Обрабатываем очередь сообщений
Элементы управления создаются только при помощи функции CreateWindow. Они имеют для каждого класса свои сообщения, нотификационные сообщения WM_NOTIFY.
Система отправляет сообщение оконной процедуре с набором четырех параметров: дескриптор окна, код сообщения, и два значения называемые параметрами сообщения (message parameters). Дескриптор окна (window handle) идентифицирует окно, для которого предназначено сообщение. Система использует его, чтобы установить какая оконная процедура должна принять сообщение. Код (идентификатор) сообщения (message identifier) — именованная константа, которая идентифицирует цель сообщения. Когда оконная процедура принимает сообщение, она использует код сообщения, чтобы установить, как обработать его. Например, код сообщения WM_PAINT сообщает оконной процедуре, что рабочая область окна изменилась и должна быть перерисована.
Параметры сообщения определяют данные или расположение данных, использованных оконной процедурой при обработке сообщения. Предназначение и значение параметров сообщения зависят от содержания сообщения. Параметр сообщения может содержать целое число, упакованные битовые флажки, указатель на структуру, содержащую дополнительные данные и так далее. Когда сообщение не использует параметры сообщения, они обычно устанавливаются в значение ПУСТО (NULL). Оконная процедура должна проверить код сообщения, чтобы установить, как интерпретировать параметры сообщения.
ABM Панель инструментов рабочего стола программы BM Кнопка органа управления CB Орган управления - комбинированное окно CBEM Орган управления - улучшенное комбинированное окно CDM Стандартное диалоговое окно DBT Устройство DL Окно списка с перетаскиваемыми элементами DM Заданная по умолчанию командная кнопка органа управления EM Средства редактирования HDM Орган управления заголовком HKM Орган управления "горячими" клавишами IPM Орган управления IP - адресом LB Орган управления - окно со списком LVM Орган управления - просмотр списка MCM Орган управления - календарь на месяц PBM Индикатор хода выполнения процесса PGM Орган управления - пейджер PSM Окно свойств RB Орган управления - панель управления браузером Интернет SB Строка состояния окна SBM Орган управления - полоса прокрутки STM Статический орган управления TB Панель инструментов TBM Панель задач TCM Орган управления - вкладка TTM Орган управления - подсказка TVM Орган управления - дерево просмотра UDM Орган управления - полоса прокрутки поля редактирования WM Окно вообще
Система использует два метода отправки сообщения по маршруту оконной процедуре:
Сообщения, помещенные в очередь сообщений, называются поставленные в очередь (синхронные) сообщения (queued messages). Они появляются, прежде всего, как результат ввода данных пользователем через мышь или клавиатуру, такие сообщения как WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_KEYDOWN и WM_CHAR. Другие поставленные в очередь сообщения включают таймер, рисование и выход из программы: WM_TIMER, WM_PAINT иWM_QUIT. Большинство других сообщений, которые отправляются непосредственно оконной процедуре, называются не поставленные в очередь (асинхронные) сообщения (nonqueued messages).
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com — официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов — читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!
7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Обзор Cloudways: Управляемый хостинг WordPress без головной боли
- Обзор и отзывы о PQ Hosting в 2024 году
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга
- Хостинг в Турции
Поддержать проект VirusInfo.Info
Пожалуйста, поддержите проект MSDN — Windows API по-русски
Уважаемые посетители!
Проект MSDN — Windows API по-русски является полностью некоммерческим и оказывает помощь начинающим и уже состоявшимся программистам в освоении
Windows API на русском языке абсолютно бесплатно. Поэтому, сайт очень нуждается в вашей поддержке и я прошу вас оказать посильную денежную
помощь этому проекту.
Все собранные средства будут направлены строго на совершенствование системы оказания бесплатной компьютерной помощи программистам и для финансирования затрат на перевод, форматирование переведенного
материала и оплату трафика в Интернете. Желающие помочь проекту могут сделать это указанным ниже способом.
Я надесь, что этот ресурс оказался очень полезен вам.
Если вы имеете кошелек в системе Яндекс.Деньги, то просто укажите необходимую сумму в форме ниже и далее следуйте инструкциям системы:
Если вы не имеете кошелька в системе Яндекс.Деньги, то необходимо сделать следующее:
1. Открыть аккаунт. Зарегистрироваться на Яндексе.
2. Открыть счёт в сервисе Яндекс Деньги.
3. Пополнить счет один из доступных методов. (через терминал, банковской картой, картой предоплаты и т.п.)
4. Сделать перевод, используя форму выше, или через интерфейс системы Яндекс.Деньги
на счет №********
Если у вас возникли какие-то сложности с переводами указанными выше способами, пожалуйста
по e-почте со мной.
Справочники по WinAPI
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Ответы на многие вопросы можно найти в справочниках по WinAPI. Справочники по WinAPI
P.S. Советую скачать! |
hummy |
|
Цитата Jin X, 20.03.03, 20:24:11 В качестве справки по API — не очень, а в качестве пособия по программированию на Visual C++ для виндовс — вполне, очень даже |
Рысь |
|
aka Волченка Рейтинг (т): 60 |
Все жаждущие: Есть еще один справочник на русском, куча файлов в DOSовской кодировке ~600K Сообщение отредактировано: vot — |
Danaris |
|
http://api.wallst.ru/ |
rodion |
|
На bcbdev.ru есть книги в пдфе Сообщение отредактировано: rodion — |
ruli |
|
velosiped ne izobresti a poroh on vezde prigoditsea:) |
AlbertMW |
|
Хороший учебник «Уроки Win32API» на русском (с примерами): |
7in |
|
Добавил ещё ссылку… |
cronix |
|
http://anatolix.naumen.ru/win32books.htm |
x0ras |
|
GRF |
|
А еще есть неплохой справочник: |
Kontakt |
|
Лично мне Справочник Верма не понравился ;( Если есть и-нет, тогда MSDN + ApiViewer RULES B) |
GRF |
|
Цитата Лично мне Справочник Верма не понравился Да он собственно и не претендует на совершенство. А вот я недавно еще в магазине видел книгу: |
Lonli |
|
Ай, в этом Саймоне не все функции(нет бы просто остальные перечислили просто…) |
Lookin for.. |
|
Senior Member Рейтинг (т): 9 |
Цитата 7in @ 20.03.03, 20:24 Справочник-программа ApiViewer Может, прога не ахти какая, но ради справедливости замечу, что к ней есть русификатор. http://www.activevb-archiv.de/downloadstor…wer/russian.exe |
Juggernaut |
|
На своём сайте (bcbdev.ru/msdn )мы занимаемся переводом MSDN на русский язык. Если бы каждый перевёл хоть малейший кусочек мправки, думаю у нас всех уже давно был бы в наличии полноценный справочник. А так только и моно искать по интернету, в надежде что кто то переведёт справку в одно лицо. Это нереально. |
Some1 |
|
Цитата 7in, 20.03.03, 16:24
Ну я не знаю, кому не очень, а я по ней разобрался с основными принципами. Очень доступно. Только вот не по этому варианту книжки, а по его русскому брату — тоесть переведённой на русский. МОжно найти |
NeoFromAvalon |
|
Люди добрые помогите найти справочник по win32 api функциям, корый можно ессесно скачать Но, все они только на заказ. Где же любимое «Скачать бесплатно». |
Lyrik |
|
Абсолютного полного не встречал ни разу (из книг). А так есть МСДН, купи три диска и пользуйся в удовольствие! |
f33l |
|
Цитата NeoFromAvalon @ неплохие вещи Есть ещё Рихтер =) В инете можно найти спокойно.. |
дим |
|
Создал форму и кнопку вроде все просто,а как создать MainMenu и PopupMenu и задать им нaзвания и функции(WinApi на Delphi). |
Erick |
|
Full Member Рейтинг (т): 1 |
Очень нужна книга: Р.М. Ганеев «Проектирование интерфейса пользователя средствами WIN32API». Может у кого есть в электронном виде или кто подкинет ссылку, где можно её скачать. |
IEZ |
|
Литература на русском Сообщение отредактировано: IEZ — |
Genetik |
|
Junior Рейтинг (т): 1 |
NeoFromAvalon да ты прав Дан Эпплман — Win32 API и Visual Basic. Для профессионалов |
dr_rost |
|
http://djvu.com.ru/knigi/740-1.djvu |
Guest in the shell |
|
Junior Рейтинг (т): 1 |
Существует ли какой-то аналог ApiGuide под XP? Очень полезная программа и особенно ценна тем, что содержит очень много примеров! Но после смены win2000 на XP она отказалась у меня запускаться с Run-time error ‘5’ Invalid procedure call or argument. Что-то не так у меня или ApiGuide не работает по XP? Посещение сайта разработчиков очень расстроило тем, что ApiGuide больше не поддерживается Вот есть какой-то аналог ApiGuide (обязательно с примерами)? |
miksayer |
|
Цитата Guest in the shell @ Что-то не так у меня или ApiGuide не работает по XP? насколько я понял, ApiGuide — это справочник для VB, если так, то у меня он отлично работает под ХР. |
Guest in the shell |
|
Junior Рейтинг (т): 1 |
Все заработало. Надо отдельно установить библиотеки от VB 5.0. Их можно скачать там же — allapi.net |
AlexJ |
|
Windows 32-bit API help file (Microsoft SDK). http://www.powerbasic.com/files/pub/mstools/Win32.zip 5.5Mb-packed ~24Mb unpacked SY, P.S. BTW, RegQueryValue — included in win32.hlp Сообщение отредактировано: AlexJ — |
BreakPointMAN |
|
Цитата перевод на русский язык материалов Платформы SDK — Windows API
http://vsokovikov.narod.ru/Msdn_api/Global_SDK/index_sdk.htm |
AlexJ |
|
Michael Abrash Книга не только о графике, http://www.byte.com/abrash/ Best regards, |
nvbud |
|
Junior Рейтинг (т): 0 |
Отличный справочник по функциям WinAPI от Borland: |
AlexJ |
|
B5MS.ZIP Если что — то пропустил относящиеся ко всем языкам, тогда Best regards, P.S. Сообщение отредактировано: AlexJ — |
orb |
|
что из этого можно красиво распечатать на принтере в А4 или А5 формате? |
root2lexS |
|
Senior Member Рейтинг (т): 32 |
Цитата 7in @ Microsoft® Win32® Programmer’s Reference — что-то не осилил скачать |
AlexJ |
|
Цитата root2lexS @ что-то не осилил скачать
Тоже самый файл есть здесь ИМХО, лучше перенести обсуждения в основной подраздел, |
IEZ |
|
Появляются новые книги: http://www.insidesoft.ru |
Dantes |
|
Full Member Рейтинг (т): 25 |
Цитата tempuser2000 @ Цитата AlexJ @ Тоже самый файл есть здесь Люди самый толковый «Win32 SDK Help Files» Скачал. Откровенное старьё — 1995 г Тем, кто делится ссылками, просьба давать и небольшую аннотацию к ним с указанием даты выпуска/обновления материала. Сообщение отредактировано: Dantes — |
AlexJ |
|
Цитата Dantes @ Скачал. Откровенное старьё — 1995 г
А что очень много что поменялось, что нужно в повседневке и совместимое ? |
AlexJ |
|
Если нужны в основном самые последние АПИшки с примерчиками |
AlexJ |
|
Цитата tempuser2000 @ Я жутко извиняюсь я качал ето.. (както сам попал) и ето чудо не ставитса сразу выдаёт какойто еррор,
Да помню тоже были проблемы с инсталяцией, Потом просто запускаете Setup.exe и выбираете что нужно инсталировать P.S. BTW, выше приведенная ссылка для немного устаревшей PSDK SP1(но скачка возможна без проверки валидности винды, для тех у кого нет с этим проблем, последний свежий PSDK здесь Сообщение отредактировано: AlexJ — |
AlexJ |
|
Цитата Dantes @ Скачал. Откровенное старьё — 1995 г Тем, кто делится ссылками, просьба давать и небольшую аннотацию к ним с указанием даты выпуска/обновления материала.
Справочник 2000 года, издание 5-е |
Катька |
|
половину ссылок уже неработает, а мсдн не хочу устанавливать, всё остальное осталось дома, что делать, что скачать посоветуете, главное чтобы шло без NetFramework, размер значения не имеет, и чтобы было описано в какой библиотеке находится функция, зарание, спасибо. |
AlexJ |
|
Кать если с трафиком не напряг (~400 мег)качай PSDK — R2 |
Shad0vv |
|
http://msdn.microsoft.com/vstudio/extend/partnerdvd/ |
artsb |
|
Вот полный справочник по WinAPI: WinAPI 3,9 Мб Жаль только, что на английском. Сообщение отредактировано: artsb — |
AlexJ |
|
Цитата artsb @ Вот полный справочник по WinAPI:
Скажем так он не совсем полный |
Катенька |
|
Помню по бэйсику был отличный справочник на анлгийском, тоже в хлп формате, где-то 50 мегабайт весит, найти бы ссылку На каком-то англо ресурсе. Ни кто не знает ? |
AlexJ |
|
Цитата Катенька @ Помню по бэйсику был отличный справочник на анлгийском
Разновидностей Бэйсиков как грязи, какой именно нужен? |
developer |
|
Очредной русский интерактивный справочник по Win32API http://tarasovskij.boom.ru/material.htm |
Wachburn |
|
Full Member Рейтинг (т): 1 |
вот хороший сайт http://www.vsokovikov.narod.ru/ Сообщения были разделены в тему «Ищу книгу: как создовать сервера, работа с ними» Сообщение отредактировано: Wachburn — |
burattino |
|
Цитата AlexJ @
Согласен полностью! Только вот беда: на семёрках он не идёт. Так что пришлось самому расстараться. WIN32.CHM Это полная копия старого-доброго win32.hlp!!! Небольшой подвох там всё-же есть: умельцы из мЕЛКОСОФТА сделали там «Quick info» в виде отдельно раскрывающегося окна. Так что кнопка с описанием библиотек и хедерсов не работает. Но хочу сразу утешить — топики там есть ВСЕ!!! Чтобы получить эту информацию о функции/структуре/константе, надо имя скопировать в поиск и выбрать из списка «(Untitled)» — это и будет «Quick info». Из плюсов — 1.меньше места на винте, 2 — все удобства CHM формата. |
Leonardo |
|
igor155 |
|
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- C/C++: Системное программирование и WinAPI
- Следующая тема
[ Script execution time: 0,0933 ] [ 16 queries used ] [ Generated: 14.05.25, 04:40 GMT ]
Вступление
API Windows обширен и содержит множество функций. Размер API таков, что никто не может все это знать. Хотя существует множество ресурсов, таких как StackOverflow, официальная документация не заменяет.
замечания
Примеры документации:
- Обзор темы: соображения производительности и оптимальные рекомендации Desktop Window Manager
- Образцы: настройка знакового миниатюры и растрового изображения в реальном времени
- Функции: функция DwmSetIconicThumbnail
Доступные типы документации
Библиотека MSDN содержит несколько различных типов документации, которые могут быть использованы для реализации функций.
- Обзор тем Это широкий обзор тем, предназначенных для общего понимания API. В этих обзорах также часто описываются передовые методы и стратегии реализации.
- Образцы демонстрируют использование определенных API. Они, как правило, очень упрощены, не обязательно выполняют проверку ошибок и, как правило, не используют фреймворки, такие как MFC или ATL. Они обеспечивают отправную точку для использования функций.
- Ссылка Подробности всех элементов каждого API. Сюда входят константы / перечисления, интерфейсы, функции и классы.
Примечание. Многие сотрудники Microsoft также поддерживают блоги, такие как « Новая новая вещь» Раймонда Чена, которые могут дополнять документацию, но эти блоги не заменяют документацию.
Поиск документации для функции
Поиск документации для функции часто бывает так же просто, как поиск с использованием хорошей поисковой системы. Если это не удается или если вы не уверены в конкретных условиях, индекс Windows API может помочь найти определенные функции. Документацию по методам, интерфейсам, перечислениям и константам обычно можно найти путем поиска имени с помощью поисковой системы. Кроме того, Центр Windows Dev может стать ценной отправной точкой.
Использование функциональной документации
Документация для функции разбита на несколько разделов:
обзор
Описывает, для чего используется функция. В этом разделе также будет показана информация о том, обесценена ли функция или может быть недоступна в будущих версиях.
Синтаксис
Показывает объявление функции из соответствующего заголовка источника. Это краткая ссылка на подпись функции.
параметры
Объясняет каждый из параметров, независимо от того, введен или нет параметр, и другие важные соображения.
Возвращаемое значение
В этом разделе объясняется результат вызова функции, в том числе, как выявлять ошибки и какая дополнительная информация доступна. (Например, этот раздел будет явно GetLastError
если GetLastError
предоставит дополнительную информацию об обработке ошибок.)
замечания
Охватывает любую дополнительную информацию, необходимую для использования функции, такую как информация о вспомогательных функциях, получение соответствующих ручек и удаление ресурсов.
Примеры
Если этот раздел доступен, в нем есть пример соответствующего использования функции для использования в качестве отправной точки для реализации.
Требования
Предоставляет важную информацию о предварительных требованиях для вызова функции. Эта информация включает:
- Минимальный поддерживаемый клиент / сервер. Первая версия операционной системы (поддерживается Microsoft) для обеспечения этой функции.
(Обратите внимание, что это поле, как правило, вводит в заблуждение. Часто функции поддерживаются в более ранней версии операционной системы, но в этом поле отображается только самая ранняя версия, которая в настоящее время поддерживается Microsoft . Например, функцияCreateWindow
поддерживается с Windows 1.0 , но в документации только показано, что она поддерживается с Windows 2000. Онлайн-версия документации MSDN не указывает, что любая функция поддерживалась в версии Windows до 2000 года, хотя многие из них были доступны. необходимо проконсультироваться с более старой версией документации SDK, например, возможно, она была отправлена на компакт-диск MSDN или просто просмотрите файлы заголовков.) - Заголовок Заголовок SDK для
#include
, содержащий объявление функции. Если функция недоступна в заголовке, это покажет информацию о процедуре для вызова функции (обычно вызывающейGetProcAddress
для выполнения динамической компоновки во время выполнения). - Библиотека Файл библиотеки, который нужно передать в компоновщик для разрешения экспортированных функций.
- DLL Файл (поставляется вместе с операционной системой), который содержит экспортированную функцию.
- End of Client / Server Support Последняя версия Windows официально поддерживает API.
- Имена Unicode и ANSI Для строковых функций, которые имеют как Unicode, так и ANSI-варианты, перечислены фактические экспортированные имена для двух функций. Обычно это имя функции с суффиксом
W
илиA
(соответственно).