2.9k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hi...

Voller Euphorie habe ich eine kleine Anwendung in C# geschrieben. Später habe ich gemerkt, dass die Performance des Rechners nicht optimal ist, da noch weitere Programme im Hintergrund laufen.

Ich möchte also versuchen, eine Anwendung von C# zu C++/CLI zu portieren um so eventuell etwas schonender mit den Ressourcen umzugehen. Als IDE dient mir Microsoft Visual Studio 2008 Pro.

Gleich am Anfang scheitert es schon an der Fenstergröße.

In der Datei Form1.h gibt es folgende Code-Zeile:


this->ClientSize = System::Drawing::Size(220, 590);


Die X-Achse der Fenstergröße stimmt. Jedoch soll die Y-Achse immer auf 100% der Bildschirmauflösung (Höhe) laufen.

Mein Ansatz sieht nun so aus:


this->ClientSize = System::Drawing::Size(220, GetSystemMetrics(SM_CYSCREEN));


Ich erhalte jedoch die Fehlermeldungen:
-Error 1 error C2065: 'SM_CYSCREEN' : undeclared identifier
-Error 2 error C3861: 'GetSystemMetrics': identifier not found

Und ich habe keine Ahnung an welcher Stelle ich die Dinger deklarieren soll und wie das genau auszusehen hat. C++ unterscheidet sich schon sehr von VisualBasic und C# mit denen ich in der Vergangenheit gearbeitet habe.

Weiß da jemand, was ich falsch gemacht habe bzw. wo ich noch etwas vergessen habe?

HannesWurst

2 Antworten

0 Punkte
Beantwortet von
Syntax:

this->ClientSize = System::Drawing::Size(220, ::GetSystemMetrics(SM_CYSCREEN));


Beispiel:

www.codeproject.com/KB/cpp/multimon.aspx
0 Punkte
Beantwortet von
Hi tallyHO

Leider haut es nicht ganz hin.

Ich habe Deine korrigierte Code-Zeile an die besagte Stelle eingefügt (in Form1.h).

Jetzt erhalte ich zum einen diese Fehlermeldungen:

Error 1 error C2039: 'GetSystemMetrics' : is not a member of '`global namespace''
Error 2 error C2065: 'SM_CYSCREEN' : undeclared identifier
Error 3 error C3861: 'GetSystemMetrics': identifier not found


Das hängt vermutlich damit zusammen, dass noch Deklarationen fehlen von denen ich nicht weiß, wie sie auszusehen haben., geschweige denn an welche Stelle sie gehören.

Hast Du noch einen Denkanstoß für mich?
...