was hat dieser Error code zu bedeuten c++?

3 Antworten

Schau doch einfach in der angegebenen Datei winbase.h nach. Wahrscheinlich steht da in Zeile 1037 etwas wie

int CALLBACK WinMain( _In_ HINSTANCE hInstance
                    , _In_opt_ HINSTANCE hPrevInstance
                    , _In_ LPSTR lpCmdLine
                    , _In_ int nCmdShow );

Verwende einfach dieselbe Signatur.

Fehlender Funktionsprototyp für WinMain:  WinMain-Funktion wird verwendet, aber es gibt keinen Funktionsprototyp dafür. Solltest Du deklarieren.

CreateWindowEx-Funktion verwendet den Fensterklassenname "Fenster", aber die Fensterklasse wurde als "MyWindow" registriert. 

Vielleicht hilft es weiter...


BONEz851 
Fragesteller
 12.09.2023, 12:35

bin recht neu in der Programmier Welt. Ich habe jetzt den Funktionsprototyp angelegt, aber der selber error/ Warnung kommt trotzdem

0
odine  12.09.2023, 12:53
@BONEz851

Die Warnung C2825 scheint in diesem Fall eine Fehlmeldung zu sein, die möglicherweise durch die Konfiguration Ihres Entwicklungsumgebung verursacht wird. Es ist möglich, dass die Header-Datei

windows.h

oder andere Einstellungen in Ihrem Projekt dazu führen, dass der Compiler diese Warnung ausgibt, obwohl der Code korrekt ist.

Mit

#pragma warning(disable: 2825)

kannst du die Warnungen ausschalten, ist natürlich nicht ganz sauber.

Die zweite Warnung, Int-uninit, weist darauf hin, dass eine lokale Variable im Code nicht initialisiert wurde. Im Beispiel sind alle lokalen Variablen, die verwendet werden (wc, hwnd, msg), jedoch initialisiert.

1
BONEz851 
Fragesteller
 12.09.2023, 14:15
@odine

die Warnungen konnte ich damit ausschalten, geklappt hat es trotzdem nicht. Ich glaube es hat irgend etwas mit meiner IDE zutun, weil ich jetzt ein komplett anderen Code aus dem Internet verwende und wenn ich NUR eine "Text Zeile" ändere dann gibt es wieder ERROR. Bin mit den nerven echt am ende.

0

Der Code kommt wenn der Compiler einen gefährlichen Code im Bezug auf Sicherheit erkennt. Sehr wahrscheinlich ausgelöst durch wc.lpfnWndProc = DefWindowProc;

Beheben indem du eine benutzerdefinierte Fensterprozedur nutzt.


BONEz851 
Fragesteller
 12.09.2023, 12:47

Wie nutze ich eine benutzerdefinierte Fensterprozedur?

0