C DLL Aufrufe generieren

27/10/2008 - 17:12 von Bastie | Report spam
Hallo,

ich habe hier eine DLL von einem Fremdanbieter (natürlich in C). Gibt
es ein Werkzeug, welches mir die Aufrufe für C# generieren kann oder
muss ich jeden Einsprungspunkt (fehlertràchtigerweise) per Hand
deklarieren?

Danke
Sebastian
 

Lesen sie die antworten

#1 Thomas Scheidegger
27/10/2008 - 17:27 | Warnen spam
Hallo Sebastian

DLL von einem Fremdanbieter (natürlich in C).
Gibt es ein Werkzeug, welches mir die Aufrufe für C#
generieren kann oder muss ich jeden Einsprungspunkt
(fehlertràchtigerweise) per Hand deklarieren?




es gibt kein perfektes Tool,
brauchbar für groben Ansatz ist zB:
PInvoke Interop Assistant
<URL:http://www.codeplex.com/clrinterop/...?ReleaseId120>

<URL:http://blogs.msdn.com/bclteam/archi...n.aspx>


Aber:
C-Source / APIs / Headers sind fast immer 'mehrdeutig',
kann man oft nur zusammen mit der Dokumentation und Beispielen/Source
korrekt interpretieren und in C# umsetzen.
Und generell ist etliches an KnowHow & Erfahrung nötig,
sowohl C++/Win32/Systemarchitekturen und C# DllImport/marshalling.

Wichtig:
es gibt bei PInvoke generell Null-Fehlertoleranz,
weder Compiler noch Debugger können
da Fehler (ausser in blosser Syntax) wirklich erkennen!
Und solche Fehler sind meist absolut fatal,
werden meist nicht sauber von .NET-Exceptions erfasst.
=> Totalabsturz inkl. Runtime




Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen