Wie man eine native API macht, um PInvoke freundlich zu sein?Wie mache ich eine PInvoke-freundliche native-API?
Es gibt einige Tipps zum Ändern von nativen Programmen, die mit P/Invoke here verwendet werden sollen. Aber bevor ich überhaupt ein natives Programm schreibe, worauf sollte ich achten, um meine Programme/Bibliothek PInvoke freundlich zu machen?
mit C oder C++ sind in Ordnung.
Update:
wenn ich eine C-API zu schreiben, was sind die Dinge, die ich so zu tun haben, dass es P/Invoke-fähig ist C# Syntax wie folgt aus:
[DLLimport("MyDLL.dll")]
ist es möglich, zu tun das Gleiche mit nativem C++ Code/Bibliothek?
Zusammenfassung/Rephrase einiger Tipps, um einen P zu machen/Invoke freundliche nativer API:
+ die Parameter von nativen Typen sein sollte (int, char *, float, ...)
+ weniger Parameter ist besser
+ Wenn dynamischer Speicher zugewiesen und an verwalteten Code übergeben wird, stellen Sie sicher, dass eine "cleaner" -Funktion erstellt wird, die ebenfalls aufgerufen wird
+ Beispiele und/oder Komponententests bereitstellen, die veranschaulichen, wie die API von .NET
aufgerufen wird + C++/CLI-Wrapper bereitstellen
„eine Funktion soll so wenige Parameter wie möglich hat, die von nativen Typen (int, char *, float, ...) sein sollte“ Kann ich es in zusammenfassen: -> die Parameter von nativen Typen sein sollten (int, char *, float, ...) -> weniger Parameter ist besser -> Wenn dynamischer Speicher zugewiesen und an verwalteten Code übergeben wird, stellen Sie sicher, eine "cleaner" -Funktion zu erstellen, die auch p/aufgerufen –
Ja Das ist eine gute Zusammenfassung. –