¿Cómo hacer que una API nativa sea amigable con Invoice?¿Cómo hacer una API nativa amigable con Invoke?
hay algunos consejos sobre cómo modificar los programas nativos que se utilizarán con P/Invoke here. Pero antes de siquiera escribir programas nativos, ¿cuáles son las cosas que debería considerar para que mis programas/biblioteca sean amigables con PInvoke?
usando C o C++ están bien.
actualización:
si escribo una API C, ¿cuáles son las cosas que tengo que hacer para que Es P/Invoke-poder usar C# sintaxis como la siguiente:
[DLLimport("MyDLL.dll")]
es posible hacer lo mismo con el código nativo de C++/biblioteca?
Resumen/Rephrase de algunos consejos para hacer un P/Invoke-amigable nativo API:
+ los parámetros deben ser de tipos nativos (int, char *, float, ...)
+ menos parámetros es mejor
+ si la memoria dinámica se asigna y se pasa al código administrado, asegúrese de crear una función "más limpia", que es también la p/invocarse
+ proporcionar muestras y/o pruebas de unidad que ilustran cómo llamar a la API de .NET
+ proporcionar C++/CLI wrapper
"una función debería tener el menor número posible de parámetros que deben ser de tipos nativos (int, char *, flotador, ...)" ¿Puedo resumir en: -> los parámetros deben ser de tipos nativos (int, char *, float, ...) -> menos parámetros es mejor -> si la memoria dinámica se asigna y pasa al código administrado, asegúrese de crear una función "limpiadora" que también esté p/invocada –
Sí , ese es un buen resumen. –