Parameter der Funktion WinMain
-
Hallo,
aus reiner Neugier, können die Parameter der Funktion WinMain, hInstance, hPrevInstance und szCmdLine nach dem Start des Programms irgendwie ungültig werden? Also NULL oder INVALID_HANDLE oder wie auch immer?
Ich benutze sie im Augenblick nicht, bekomme aber Warnungen vom Compiler "unused variable" o.ä. Und diese Warnungen sind wie ein Dorn im Auge... Es geht mir darum, wenn ich sie mal benutzen müsste, muss ich sie erstmal auf Gültigkeit prüfen? Also irgendwie:
if (szCmdLine == NULL) { /* ungültig */ } else { /* ok */ } if (hInstance == NULL) { /* ungültig, Programm beenden? */ } else { /* ok */ }Oder wird es von Windows garantiert, dass die Parameter alle ok sind?
Mfg,
abc.w
-
"unused variable"
damit ist doch schon alles gesagt:
du benutzt die Variablen einfach nicht.
benutze sie einfach, und du wirst feststellen, dass die Warnung verschwindet.Das hat nichts mit den Parametern an sich zu tun.
Schreibe eine eigene Funktion mir Variabln oder Parametern, die du dann nicht verwendest, und du wirst die selben Warnungen bekommen.
-
Wenn von einer Funktion ein Übergabeparameter nicht benötigt wird, dann kommentiere einfach den Variablennamen weg.
Insbesondere die Variable hPrevInstance bei der Funktion WinMain() wird meistens nie benötigt, da sie in aktuellen Win32-Betriebssystemen ohnehin den Wert NULL bekommen:int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR lpCmdLine, int nCmdShow ) { bla bla ... ... return( 0 ); }Einfach und wirkungsvoll.
Und trotzdem vollständig dokumentiert, welche Übergabeparameter die Funktion erwartet.Martin