Gibt es eine weniger schmerzhafte Möglichkeit, Win32 von C # aus aufzurufen?

8

Alle paar Monate muss ich Win32 von C # aufrufen. Obwohl ich es ein Dutzend Mal gemacht habe, habe ich normalerweise die genauen Machenschaften vergessen, also stöbere ich im Web oder im alten Code und finde heraus, welche DllImport-Anweisungen ich brauche, usw.

Bin ich allein?

Gibt es eine sanktionierte "Win32" -Klasse, die über die erforderlichen Deklarationen für die gesamte Win32-API verfügt? Scheint so, als müsste es sein. Vielleicht vermisse ich etwas.

    
I. J. Kennedy 21.10.2009, 02:30
quelle

6 Antworten

8

Sie können Ссылка hilfreich finden.

Auch für allgemeine Win32-Funktionen können Sie versuchen, P / Aufruf des Interop-Assistenten .

    
user200783 21.10.2009, 02:32
quelle
1

Es gibt keine sanktionierte Win32-Klasse, aber Ссылка ist eine großartige zentrale Ressource für diese Dinge.

    
itowlson 21.10.2009 02:32
quelle
1

Das klingt nach einer großartigen Idee für ein Open-Source-Projekt.

/ em setzt auf cap und läuft auf pinvoke.net

    
Mike Hofer 21.10.2009 02:34
quelle
1

Die richtigen DllImport-Anweisungen zu erhalten ist einfach, wie jeder sagt, aber für eine einfache Handhabung verwende ich normalerweise die Win32-Funktionen, die ich in C # -Klassen brauche, und kompiliere sie in meine Core-Helper-Assembly. Beim nächsten Mal beziehe ich mich nur auf die Baugruppe. Wenn ich also eine Win32-Funktion brauche, ist es wahrscheinlich schon in meiner Hilfs-Lib, wenn ich sie nicht einfach hinzufüge.

Außerdem ordne ich die Rückkehrcodes Ausnahmen zu, d. h. wenn HResult ungleich Null ist, erzeuge ich eine Ausnahme, so dass meine C # -Apps nicht mehr über HResult- oder Rückgabecodes wissen müssen.

    
Marthinus 21.10.2009 04:49
quelle
0

Auschecken: Ссылка

    
leon 21.10.2009 04:11
quelle
0

Sie können Reflektor verwenden und nach Win32Native suchen. Es hat eine Reihe von Definitionen, die Sie für PInvoking verwenden könnten.

    
SwDevMan81 21.10.2009 04:16
quelle

Tags und Links