Wie werden Win32-Typen bei Verwendung von P / Invoke C # -Typen zugeordnet?
Ich versuche etwas zu tun wieDie in C #. Ich fand heraus, wie man Win32-Methoden von C # mit P / Invoke @ aufruvon diesem Link. Bei der Implementierung von P / Invoke sind mir jedoch einige Schwierigkeiten begegnet.
Zum Beispiel ist eine der Methoden, auf die ich zugreifen möchte, PdhOpenQuery, Unterschrift
PDH_STATUS PdhOpenQuery(
__in LPCTSTR szDataSource,
__in DWORD_PTR dwUserData,
__out PDH_HQUERY *phQuery
);
Ich denke, die entsprechende C # -Deklaration sollte ungefähr so aussehen
[DllImport("Pdh.dll")]
static extern PDH_STATUS PdhOpenQuery(LPCTSTR szDataSource,
DWORD_PTR dwUserData, out PDH_HQUERY *phQuery);
Meine Fragen
Was ist LPCTSTR und welchem Datentyp wird es in C # zugeordnet?
Wie ordne ich einen Zeigertyp DWORD_PTR zu? Der Pinvoke-Artikel besagt, dass DWORD UInt32 zugeordnet ist, aber wie steht es mit Zeigern?
Ich denke, PDH_STATUS und PDH_HQUERY sind spezifische Strukturen für die Bibliothek (ich bin mir noch nicht sicher). Wie ordne ich diese zu?
Was ist die richtige Methodendeklaration und wie nennt man sie richtig?