Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Компьютерная литература > Марк Руссинович


Автор: headzero 25.11.2006, 23:17
В книге М.Руссиновича и Соломона ,,Внутренее устройство Windows" часто встечаются названия каких-то системных функций , типа CreateFile ит.д. Кто обяснит: это функции самого програмного кода Windows или какие-то другие? Те же функции используются в программировании под Windows на VC++, входят ли они в MFC?
Cпасибо.

Автор: BUGOR 26.11.2006, 09:06
Наверное ты имеешь ввиду API функции(Application Programming Interface). Это функции импортируемые из системных библиотек(kernel32.dll, user32.dll и т.д.), они по существу являются фундаментом любых стандартных методов работы с какими-то базовыми операциями, ну давай подробнее разберём на примере работы с файлами. В С/С++ ты обычно используешь функцию fopen. Это тоже API функция, которая импортируется из CRTDLL.dll, но эта фунуция, для того, чтобы открыть файл обращается именно к CreateFile(которая импортируется из kernel32.dll), скажем так, это будет являться более низкой ступенью, далее CreateFile обращается ещё к более "низкой"(по уровню исполнения) функции - ZwCreateFile, это вообще уже ядерная функция, которая исполняется на уровне ядра системы и работает непосредственно с портами ввода/вывода харда. Ты спросишь для чего нужная такая цепочка? Всё просто, сделано это конечно же для удобства. Аналогичная ситуация и с, например, fread, там используется WinApi ReadFile.
На каком бы языке ты ни писал(будь то хоть php), который казалось бы вообще является скриптовым и никакого отношения непосредственно к системе не имеет, однако если выполнить php скрипт, который осуществляет какую-либо работу с файлами, на Win32 платформе, он точно так же, после интерпретации, будет использовать API функции windows, чтобы открыть файл или произвести какие-то операции над ним.

Автор: headzero 26.11.2006, 11:15
Спасибо. Теперь чуть прояснилось.

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