Ағылшын тілінде оқу

Бөлісу құралы:


Взаимодействие на уровне машинного кода

В следующих статьях показаны различные способы взаимодействия на уровне машинного кода в .NET.

Для обращения к машинному коду может быть несколько причин:

  • Операционные системы включают большой объем API-интерфейсов, отсутствующих в управляемых библиотеках классов. Яркий пример такого сценария — доступ к функциям управления оборудованием или операционной системой.
  • Взаимодействие с другими компонентами, имеющими или способными создавать ABI в стиле C (ABI машинного кода), например код Java, предоставляемый с помощью Java Native Interface (JNI), или любой другой управляемый язык, способный создавать компоненты машинного кода.
  • Большая часть устанавливаемого программного обеспечения Windows, например пакет Microsoft Office, регистрирует COM-компоненты, которые представляют свои программы и позволяют разработчикам автоматизировать или использовать их. Для этого также требуется взаимодействие на уровне машинного кода.

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

Ескерім

Большинство примеров в этом разделе приводятся для всех трех поддерживаемых платформ .NET Core (Windows, Linux и macOS). Но для краткости и наглядности приведен лишь один пример, использующий имена и расширения файлов Windows ("dll" для библиотек). Это сделано исключительно ради удобства и не означает, что на Linux и macOS такие функции недоступны.

См. также