Microsoft упростила доступ к API Win32 для языков Rust и C#
Компания Microsoft рассказала о проекте по упрощению взаимодействия с API Win32 для языков программирования Rust и С#. Проект получил название win32metadata и доступен для предварительного просмотра на Github. Цель проекта win32metadata — полное описание Win32 API в метаданных, чтобы облегчить взаимодействие с API, повысить корректность и минимизировать затраты на обслуживание. Microsoft разработала файл метаданных Windows c полным описанием Win32 API, который совместим с ECMA-335 (winmd) и опубликовала на nuget.org . Компания объяснила, что из-за объёма материалов API Win32 точное описание всех элементов займёт некоторое время. Для использования API Win32 в других языках программирования Microsoft добавила языковые проекции, надстроенные над ними. C# / Win32 Эта проекция была создана в партнёрстве с Эндрю Арноттом, владельцем P/Invoke для .NET. Она анализирует метаданные и создаёт обёртки P/Invoke, которые требуются для вызова API. Для установки проекции необходимо: Добавить ссылку на Microsoft.Windows.SDK.Win32Metadata от nuget.org ; Поместить файл NativeMethods.txt в корневую директорию проекта вместе со списком функций Win32, которые запланированы для проекта. Файл NativeMethods.txt поддерживает размещение функции в строке и подстановочные знаки, например, BCrypt.* для включения целых модулей. После этого проекция C# / Win32 начнёт генерировать обёртки P/Invoke для запрашиваемых функций и всех их зависимостей. Microsoft разъяснило, что это ранний прототип взаимодействия с динамически создаваемыми проекциями API Win32, который планируют развивать и для других языков.
Моя Электроника
Microsoft упростила доступ к API Win32 для языков Rust и C#
Компания Microsoft рассказала о проекте по упрощению взаимодействия с API Win32 для языков программирования Rust и С#. Проект получил название win32metadata и доступен для предварительного просмотра на Github.
Цель проекта win32metadata — полное описание Win32 API в метаданных, чтобы облегчить взаимодействие с API, повысить корректность и минимизировать затраты на обслуживание. Microsoft разработала файл метаданных Windows c полным описанием Win32 API, который совместим с ECMA-335 (winmd) и опубликовала на nuget.org .
Компания объяснила, что из-за объёма материалов API Win32 точное описание всех элементов займёт некоторое время.
Для использования API Win32 в других языках программирования Microsoft добавила языковые проекции, надстроенные над ними.
C# / Win32
Эта проекция была создана в партнёрстве с Эндрю Арноттом, владельцем P/Invoke для .NET. Она анализирует метаданные и создаёт обёртки P/Invoke, которые требуются для вызова API. Для установки проекции необходимо:
Добавить ссылку на Microsoft.Windows.SDK.Win32Metadata от nuget.org ;
Поместить файл NativeMethods.txt в корневую директорию проекта вместе со списком функций Win32, которые запланированы для проекта.
Файл NativeMethods.txt поддерживает размещение функции в строке и подстановочные знаки, например, BCrypt.* для включения целых модулей.
После этого проекция C# / Win32 начнёт генерировать обёртки P/Invoke для запрашиваемых функций и всех их зависимостей.
Microsoft разъяснило, что это ранний прототип взаимодействия с динамически создаваемыми проекциями API Win32, который планируют развивать и для других языков.