Все ли приложения, работающие в Windows, используют Windows API? - PullRequest
0 голосов
/ 03 ноября 2018

Я пытаюсь понять, как работает код независимо от языка. Конкретно подумав о программном обеспечении, работающем в Windows.

Правильно ли мое понимание того, что каждая встроенная функция определенного языка сопоставляется с открытой функцией в API Windows при написании программного обеспечения для платформы Windows?

Полагаю, мой вопрос может быть даже более общим, может ли язык сделать что-то помимо того, что предоставляет ОС? Если так, то как? Что является примером этого?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Да. Даже если приложение закрывается немедленно, оно использует вызов Windows. Так что это не только теоретическое. Теоретически, как и на практике, каждое приложение Windows использует API, потому что больше ничего не нужно использовать.

Даже если вы попытаетесь переписать каждую функциональность, которую собираетесь использовать, вам в конечном итоге придется установить драйвер, а это также означает, что вы будете использовать API.

0 голосов
/ 03 ноября 2018

На это есть теоретический и практический ответ.

Практически: да.

WinAPI - это API, который используется для работы в Windows. Он стабилен и совместим между версиями, поэтому вы можете писать с ним все, что захотите, и он будет работать практически на любой версии Windows, если вы не используете API, которых нет в старой версии. Нет другого интерфейса для правильного общения с операционной системой.

Любой язык или платформа, которые хотят работать поверх этого, будут называться WinAPI. Библиотеки C, Python и т. Д. Все написаны так, что они работают поверх него (часто другие языки используют библиотеки C или C ++, использующие WinAPI).

Теоретический: нет.

Сама Windows включает Native API , который является фактическим интерфейсом ОС, и WinAPI построен поверх этого. На самом деле он не используется, если в этом нет необходимости, поскольку он на самом деле не задокументирован. Он используется в нескольких компонентах Windows, которые должны быть запущены до запуска других частей системы, и вы можете создавать приложения, связанные с этим API. Но поскольку он не имеет документов, это не совсем разумно и может меняться всякий раз.

Существует также уровень системного вызова . Несколько компонентов Windows предоставляют сервисы более низкого уровня для операций, выполняемых на уровне WinAPI. Вы можете написать, например, программу сборки и использовать системные вызовы напрямую, если хотите. В большинстве случаев вы этого не хотите, так что это скорее теоретический, а не практический ответ для различных платформ, взаимодействующих с ОС. Они также могут меняться в зависимости от ОС.

WinAPI - это всего лишь одна подсистема, которая работает на ядре NT. Например, подсистема Windows для Linux - это еще одна подсистема, которая реализует свои собственные системные вызовы, которые затем переводятся в Windows. Ранее также существовала подсистема POSIX.

Так что в целом все зависит от того, на какой уровень вы смотрите, но практический ответ - да. Все практически работает на WinAPI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...