2017-03-02 2 views
0
Attribut

Ich versuche, einige winapi Funktionen in meinem WPF-Projekt zu importieren (in C# geschrieben), aber ich weiß nicht, wie zu „konvertieren“ einen Teil ihrer Paramater, zum Beispiel die FunktionParamater der Funktionen Importierte Mit der DllImport

BOOL WINAPI GetClientRect(
    _In_ HWND hWnd, 
    _Out_ LPRECT lpRect 
); 

nimmt einen Zeiger auf eine RECT-Struktur und ändert seinen Inhalt. Wenn ich diese Funktion importieren, um die DllImport mit Attribut würde es wie folgt aussehen:

[DllImport("user32.dll"] 
public static extern bool GetClientRect(IntPtr hwnd, ???); 

Wie gehe ich mit der Zeiger auf Rect-Objekt?

+2

Es gibt eine Website voller pinvoke: http://www.pinvoke.net/default.aspx/user32.getclientrect. Hast du sie ausprobiert? Es gibt eine Definition für ein RECT. – xanatos

+0

(Beachten Sie, dass diese Seite manchmal falsch ist :-) Sie haben einige Probleme mit 32 bis 64 Bits) – xanatos

+0

Auch http://StackOverflow.com/Questions/13086927/Call-getClientrect-Winapi – mpiatek

Antwort

0
[StructLayout(LayoutKind.Sequential)] 
public struct RECT 
{ 
    public int Left, Top, Right, Bottom; 
} 

[DllImport("user32.dll")] 
static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect); 
Verwandte Themen