Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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, могут и на Дельфи кто-то написать..( smile )

Автор: Alca 24.4.2009, 16:15
Есть какой-то пример на СИ, создающий API-фукнцию?

Автор: mrbrooks 24.4.2009, 16:32
 smile 

Автор: Alca 24.4.2009, 16:36
 smile 

Автор: azesmcar 24.4.2009, 16:37
Цитата

Есть какой-то пример на СИ, создающий API-фукнцию? 

Сперва посмотри что такое АПИ функция.
АПИ означает Application Programming Interface, т.е. это любая функция которая позволяет пользователю твоей программы - работать с ней програмно. Если речь идет о WinAPI - тогда надо поискать исходники виндоуз, сейчас посмотрю..где-то у меня завлялись... smile 

Автор: GoldFinch 24.4.2009, 16:38
топик лол

Автор: Alca 24.4.2009, 16:47
Цитата

если речь идет о WinAPI

 smile 

Автор: Lazin 24.4.2009, 16:54
WinAPI - это просто набор ф-ий, которые содержатся в библиотеках kernel32, ntdll etc
K.O.

Автор: azesmcar 24.4.2009, 16:56
Alca
 smile 
Извини, не нашел исходников виндоуз. Видимо затерялись..чекаут не получилось сделать...мой account на микрософте забанили после того как я перешел на линукс.. даже не знаю.

посмотри в линуксе..он опенсорсный smile 

Автор: GoldFinch 24.4.2009, 17:14
как уже говорилось, API  - это программный интерфейс приложений, WinAPI - программный интерфейс винды. 
Внутренне устройство винды разделено на юзермодную и ядерную части. Приложения работают в юзермоде, и прямого доступа к объектам ядра не имеют. Для доступа к объектам ядра приложение должно обращаться к API ядра винды через соответствующие функции-обертки, типа kernel32.CreateFileW. То есть, при работе с объектами ядра использования WinAPI не избежать (не имея своего драйвера). Неочевидный пример - работа оператора С++ new при выделении больших кусков памяти, при этом вызывается malloc, которая вызывает kernel32.HeapAlloc которая вызывает kernel32.VirtualAlloc, и так далее пока не дойдет до ядра.
Для доступа к юзермодным объектам использование WinAPI не обязательно, на этом уровне приложение все может сделать само. Так например можно реализовать полностью свои функции GetProcAddress, FindResource и т.п.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)