Microsoft hace que las API de Win32 estén disponibles para más idiomas

Microsoft ha ampliado el alcance de las API de Win32 m√°s all√° del soporte para C y C ++, agregando soporte adicional para C # y Rust a trav√©s del proyecto win32metadata, ahora disponible en versi√≥n preliminar en GitHub. Seg√ļn el equipo de desarrollo de Windows, seguir√°n otros idiomas.

Anteriormente, los desarrolladores que usaban lenguajes distintos de C y C ++ ten√≠an que usar envoltorios o enlaces para acceder a estas API. Esto aumenta la probabilidad de fallas y, seg√ļn Microsoft, no se ampl√≠a a una amplia cobertura de API.

Esto ha estimulado varios proyectos comunitarios para proporcionar una representación más idiomática y tipada de estos envoltorios y enlaces para proporcionar una experiencia de desarrollador mejorada como PInvoke para .NET y winapi-rs para Rust.

Sin embargo, dado que todos estos proyectos se administran manualmente, el equipo de Windows SDK ha lanzado su propia versión para aliviar a la comunidad.

"El objetivo del proyecto win32metadata es proporcionar una descripción completa de metadatos de la interfaz API de Win32 para que pueda proyectarse automáticamente en cualquier idioma, mejorando la corrección y minimizando el mantenimiento", escribió el equipo de Windows SDK en un Entrada de blog.

El proyecto es un archivo de metadatos de Windows compatible con ECMA-335 (winmd) publicado en NuGet.org.

La primera proyección de lenguaje de este tipo es C # / Win32, que analiza los metadatos y genera los contenedores P / Invoke necesarios para llamar a las API. Los desarrolladores simplemente necesitan agregar una referencia al paquete Microsoft.Windows.CsWin32 de NuGet.org y agregar el archivo NativeMethods.txt a la raíz de su proyecto con una lista de las funciones de Win32 que desean invocar.

"C # / Win32 tiene amplios tipos de Intellisense para los par√°metros y tambi√©n incluye la documentaci√≥n relevante de docs.microsoft.com, todos los cuales se generan din√°micamente a partir de metadatos basados ‚Äč‚Äčen las API que solicit√≥", explic√≥ el equipo de Windows. "No se requieren dependencias adicionales, se logra una amplia cobertura de API con una correcci√≥n mejorada y un mantenimiento m√≠nimo, y las API se expresan idiom√°ticamente como los desarrolladores de C # esperar√≠an".

Mientras tanto, Rust Voice Projection sigue a C ++ / WinRT para crear proyecciones de voz para Windows, y Windows Crate permite a los desarrolladores llamar a las API como cualquier otro módulo de Rust.

El equipo también está trabajando para agregar la proyección Modern C ++ a GitHub y dar la bienvenida a las contribuciones de la comunidad allí. Otros idiomas seguirán por demanda popular.

Subir

Usamos cookies. Ver mas