Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Использует ли C Language Library функции WINAPI? |
Автор: Alca 24.4.2009, 15:07 |
Использует ли C Language Library функции WINAPI? Т.е. когда я вызываю какую-либо функция из этой либы, какие функции начинают работать? Какие DLL задействованы? OC: Winda. Добавлено через 1 минуту и 14 секунд http://www.cplusplus.com/reference/clibrary/ |
Автор: GoldFinch 24.4.2009, 15:18 |
да использует посмотри сорцы бибилотек посмотри дизасм своего кода |
Автор: Alca 24.4.2009, 16:10 |
А API-функции на чем пишут? на C (си)? |
Автор: HappyLife 24.4.2009, 16:13 |
Alca, на С на ASM, могут и на Дельфи кто-то написать..( ![]() |
Автор: Alca 24.4.2009, 16:15 |
Есть какой-то пример на СИ, создающий API-фукнцию? |
Автор: mrbrooks 24.4.2009, 16:32 |
![]() |
Автор: Alca 24.4.2009, 16:36 |
![]() |
Автор: azesmcar 24.4.2009, 16:37 | ||
Сперва посмотри что такое АПИ функция. АПИ означает Application Programming Interface, т.е. это любая функция которая позволяет пользователю твоей программы - работать с ней програмно. Если речь идет о WinAPI - тогда надо поискать исходники виндоуз, сейчас посмотрю..где-то у меня завлялись... ![]() |
Автор: GoldFinch 24.4.2009, 16:38 |
топик лол |
Автор: Alca 24.4.2009, 16:47 | ||
![]() |
Автор: Lazin 24.4.2009, 16:54 |
WinAPI - это просто набор ф-ий, которые содержатся в библиотеках kernel32, ntdll etc K.O. |
Автор: azesmcar 24.4.2009, 16:56 |
Alca![]() Извини, не нашел исходников виндоуз. Видимо затерялись..чекаут не получилось сделать...мой account на микрософте забанили после того как я перешел на линукс.. даже не знаю. посмотри в линуксе..он опенсорсный ![]() |
Автор: GoldFinch 24.4.2009, 17:14 |
как уже говорилось, API - это программный интерфейс приложений, WinAPI - программный интерфейс винды. Внутренне устройство винды разделено на юзермодную и ядерную части. Приложения работают в юзермоде, и прямого доступа к объектам ядра не имеют. Для доступа к объектам ядра приложение должно обращаться к API ядра винды через соответствующие функции-обертки, типа kernel32.CreateFileW. То есть, при работе с объектами ядра использования WinAPI не избежать (не имея своего драйвера). Неочевидный пример - работа оператора С++ new при выделении больших кусков памяти, при этом вызывается malloc, которая вызывает kernel32.HeapAlloc которая вызывает kernel32.VirtualAlloc, и так далее пока не дойдет до ядра. Для доступа к юзермодным объектам использование WinAPI не обязательно, на этом уровне приложение все может сделать само. Так например можно реализовать полностью свои функции GetProcAddress, FindResource и т.п. |