Kleine Frage zur Fehlermeldung usw ...
-
Hi Leude !
Wollte mal anfragen ob so eine Funktion sinnvoll ist oder nicht !?
Und wenn ja oder nein was sollte man verbessern ?//main.cpp #include <windows.h> #include "screen.h" int main() { SetResolution(1024,24,32); return 0; }
Header:
//screen.h #ifndef _screen_ #define _screen_ BOOL SetResolution(int width,int height,int bpp) { DEVMODE dmScreenSettings; memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); dmScreenSettings.dmSize=sizeof(dmScreenSettings); dmScreenSettings.dmPelsWidth = width; dmScreenSettings.dmPelsHeight = height; dmScreenSettings.dmBitsPerPel = bpp; dmScreenSettings.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT; if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL); return 0; } #endif
Achja ich bekomme vom Compiler immer noch eine Warnung ..... doch was soll diese bitte bedeuten !?
**
--------------------Configuration: BildFarbtiefe - Win32 Debug--------------------
Compiling...
main.cpp
i:\dokumente und einstellungen\leon seichab\desktop\bildfarbtiefe\screen.h(20) : warning C4390: ';' : empty controlled statement found; is this the intent?main.obj - 0 error(s), 1 warning(s)
**
THX für alle antworten.
cu all
-
ein typischer if-satz:
if (expr) { do_something(); }
dein if-satz:
if (expr) ;
ergo:
if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL) { // mach hiermal was hin sonst is das if-statement nutzlos // und dann klappts auch mit der Warnung }
-
die warnung bezieht sich auf diese zeile:
if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL);
schau noch mal genau was da passiert, dann kommst du schon drauf.
was auch immer
p.s.: das ist ne warnung kein fehlertrtozdem sollte man sie nicht ignorieren
-
Hallo PrOjEcT101,
in deiner letzten if - Abfrage steht direkt ein Semikolon
Also egal ob der Ausdruck true oder false ergibt, es wird nichts ausgeführt
Gruß
LordX
-
ertmal folgendes:
#ifndef _screen_ //warum nicht SCREEN_H #define _screen_ BOOL SetResolution(int width,int height,int bpp)//BOOL statt bool?? { DEVMODE dmScreenSettings; memset(&dmScreenSettings,0,sizeof(dmScreenSettings)); dmScreenSettings.dmSize=sizeof(dmScreenSettings); dmScreenSettings.dmPelsWidth = width; dmScreenSettings.dmPelsHeight = height; dmScreenSettings.dmBitsPerPel = bpp; dmScreenSettings.dmFields = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT; if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL); //hier ist deine wahnung was is denn wenn ?? ;) return 0;//return false?? }
warum nimmst de ne function bool wenn du eh immer die gleiche rückgabe hast??
und schon wieder zu langsam
-
Moin all!
oh ah vielen Dank! is mir garnicht aufgefallen
Jetzt klappt alles ....THX all....
cu
-
Hi
Also sollte ich dann lieber void SetResolution(int width,int height,int bpp)
schreiben oder was ? kann ich dann das return 0; am ende weg lassen ?cu
-
Ja dann kannst du das return weglassen
Aber was du auch machen könntest wäre folgendes
if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL) { return true; } else { return false; }
Edit: zeitgleich
-
Also sollte ich dann lieber void SetResolution(int width,int height,int bpp)
schreiben oder was ? kann ich dann das return 0; am ende weg lassen ?wenn die function nichts zurückgeben soll dass man weiterverwendet dann .. wie es oweit ich sehe bei dir der fall ist dann->
ja .. exakt
es sei denn in der if abfrage willste die rückgabe je nachdem
ob if() war wird ändern2nd edit :jappa
-
PuppetMaster2k schrieb:
Aber was du auch machen könntest wäre folgendes
if(ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL) { return true; } else { return false; }
bitte nicht.
ein
return ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL;ist viel schöner
-
return ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL;
---- ja wie Einstein schon gesagt hat->
wirklich richtig und gut ist es wenns einfach und "schön" ist
-
oh ah! ok ...
Vielen dank für eure Beiträge .... ihr habt mir alle sehr geholfen!
schönen Tag noch
cu all
-
Shade Of Mine schrieb:
return ChangeDisplaySettings(&dmScreenSettings,0)==DISP_CHANGE_SUCCESSFUL;
ist viel schöner
Stimmt. Da hätte ich auch selber drauf kommen können...