C# vordefinierte Strukturen verwenden

Gast #1854027
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
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 :-(
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.