C# vordefinierte Strukturen verwenden

Gast #1854027
Lesenswert?

Hallo,

ich möchte mit GetWindowInfo 
(http://msdn.microsoft.com/en-us/library/ms633516.aspx) die Fenstergröße 
eines Fensters herausfinden. Dafür wird die WINDOWINFO Structure 
verwendet. Laut http://msdn.microsoft.com/en-us/library/ms632610.aspx 
ist diese Struktur in Winuser.h (include Windows.h) definiert. Wie kann 
ich diese Struktur verwenden?
#include <Windows.h> führt immer zur Fehlermeldung "Preprocessor 
Directive expected"
Gast #1854060
Lesenswert?

OK, danke. Hab die beiden Strukturen WINDOWINFO 
(http://www.pinvoke.net/default.aspx/Structures/WINDOWINFO.html) und 
RECT (http://www.pinvoke.net/default.aspx/Structures/RECT.html) 
rüberkopiert und bekomme als Fehlermeldung "Inconsistent accessibility: 
parameter type 'out WindowsFormsApplication1.Form1.WINDOWINFO' is less 
accessible than method 
'WindowsFormsApplication1.Form1.GetWindowInfo(System.IntPtr, out 
WindowsFormsApplication1.Form1.WINDOWINFO)'

Sehr frustrierend alles. Ich muss wohl leider wieder MCs only 
programmieren, C# ist irgendwie zu hoch für mich :-(
#1854428
Lesenswert?

Markus schrieb:
> OK, danke. Hab die beiden Strukturen WINDOWINFO
> (http://www.pinvoke.net/default.aspx/Structures/WINDOWINFO.html) und
> RECT (http://www.pinvoke.net/default.aspx/Structures/RECT.html)
> rüberkopiert und bekomme als Fehlermeldung "Inconsistent accessibility:
> parameter type 'out WindowsFormsApplication1.Form1.WINDOWINFO' is less
> accessible than method
> 'WindowsFormsApplication1.Form1.GetWindowInfo(System.IntPtr, out
> WindowsFormsApplication1.Form1.WINDOWINFO)'

GetWindowInfo erwartet im "Original" einen Zeiger auf eine Struktur vom 
Typ WINDOWINFO. D.h. in C# wäre das richtige Attribut ref und nicht out 
(so wie es auch auf pinvoke.net gemacht wird).
out wird verwendet, um bspw. mehrere Werte zurückzugeben wobei die 
aufgerufene Funktion/Methode dann einen Wert zuweisen muss. Anders 
gesagt: Der Aufrufer darf auch nicht initialisierte (Zeiger auf) 
Variablen übergeben.
ref dagegen erwartet initialisierte Variablen.
Die Fehlermeldung kommt sehr wahrscheinlich daher, dass WINDOWINFO jetzt 
irgendwo anders definiert wird, aber nicht public gemacht wurde. D.h. 
die Struktur ist einfach nicht sichtbar.


>
> Sehr frustrierend alles. Ich muss wohl leider wieder MCs only
> programmieren, C# ist irgendwie zu hoch für mich :-(

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren