Wie um die Karte von Win32-Datentypen auf C# - Datentypen bei der Verwendung von P/Invoke?

Ich versuche, etwas zu tun, wie diese in C#. Ich fand heraus, wie zum aufrufen von Win32-Methoden aus C# mit P/Invoke von diesem link. Allerdings traf ich einige Schwierigkeiten bei der Umsetzung von P/Invoke.

Beispielsweise eine der Methoden, die ich zugreifen möchte ist PdhOpenQuery,
Signatur:

PDH_STATUS PdhOpenQuery(
  __in   LPCTSTR szDataSource,
  __in   DWORD_PTR dwUserData,
  __out  PDH_HQUERY *phQuery
);

Ich herausfinden, dass der entsprechende C# - Deklaration sollte so etwas wie dieses

    [DllImport("Pdh.dll")]
    static extern PDH_STATUS PdhOpenQuery(LPCTSTR szDataSource, 
        DWORD_PTR dwUserData, out PDH_HQUERY *phQuery);

Meine Fragen:

Was ist LPCTSTR und welchen Datentyp hat es anzeigen in C#?

Wie um die Karte einen Typ Zeiger DWORD_PTR? Die pinvoke-Artikel sagt DWORD-maps UInt32, aber wie über Zeiger?

Ich denke, PDH_STATUS und PDH_HQUERY spezifische Struktur der Bibliothek (die ich mir noch nicht sicher bin). wie kann ich diese Karte?

Was ist die richtige Methode der Erklärung, und wie nennt man es richtig?

InformationsquelleAutor Louis Rhys | 2010-08-30
Schreibe einen Kommentar