Seltsamer Fehler
-
Hallo aööe zusammen,
ich habe ein Problem und zwar wenn ich diesen Code eingebe:
[dieser bewirkt das sich ein Windowsfenster offnet]// Headerdatei #include <windows.h> // Anwendungsfenster erzeugen HWND CreateMainWindow(HINSTANCE hInstance); //Callback Funktion zur Nachrichtenbehandlung LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam); // Das Fensterhandle HWND hWnd = 0; // Windows main-Funktion int WINAPI WinMain(HINSTANCE hInstance, // Handle der Programminstanz HINSTANCE hPrevInstance, // Handle der letzten Instanz LPSTR lpCmdLine, // Kommandozeile int nCmdShow) // Art wie das Fenster angezeigt werden soll { // Fenster erzeugen und Handle speichern hWnd = CreateMainWindow(hInstance); // Wenn der Rückgabewert 0 ist, ist ein Fehler aufgetreten if(0 == hWnd) { MessageBox(0,"Fenster konnte nicht erzeugt werden","Fehler",MB_OK); return 0; } // Struktur, in der Informationen zur Nachricht gespeichert werden MSG msg; // Diese Schleife läuft bis die Nachricht WM_QUIT empfangen wird while(GetMessage(&msg,NULL,0,0)) { // Nachricht an die Callbackfunktion senden TranslateMessage(&msg); DispatchMessage(&msg); } // Rückgabewert an Windows return 0; } HWND CreateMainWindow(HINSTANCE hInstance) { WNDCLASSEX wndClass; // WNDCLASSEX Struktur // Struktur initialisieren wndClass.cbSize = sizeof(WNDCLASSEX); // Größe angeben (nie vergessen!) wndClass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; // Standard Stile wndClass.lpfnWndProc = MessageHandler; // Die Callback Funktion angeben wndClass.cbClsExtra = 0; // Zusätzliche Angaben, wird nicht benötigt wndClass.cbWndExtra = 0; // Zusätzliche Angaben, wird nicht benötigt wndClass.hInstance = hInstance; // Anwendungsinstanz wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // Weisser Pinsel wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); // Normaler Cursor wndClass.lpszMenuName = NULL; // Das Fenster hat kein Menü wndClass.lpszClassName = "WindowClass"; // Der Name der Klasse wndClass.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Windows Logo wndClass.hIconSm = LoadIcon(NULL, IDI_WINLOGO); // Windows Logo RegisterClassEx(&wndClass); return CreateWindowEx(NULL, // Keine erweiterten Stile nutzen "WindowClass", // Klassenname "Hello Windows", // Fenstertitel WS_OVERLAPPEDWINDOW | // Fenster WS_VISIBLE, // Eigenschaften 0, 0, 400, 300, // Anfangsposition und Größe NULL, // Handle des Elternfensters NULL, // Handle des Menüs hInstance, // Anwendungsinstanz NULL); // wird nicht benötigt } // Diese Funktion wird von Windows aufgrufen, wenn eine Nachricht // für Ihr Programm vorliegt LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { // testen, um welche Nachticht es sich handelt switch(msg) { // wenn das Fenster geschlossen wird, eine Nachricht senden, // die das Programm beendet case WM_DESTROY: PostQuitMessage(0); return 0; break; } // Wenn wir uns nicht um die Nachricht gekümmert haben // wird sie an die Standardnachrichtenverarbeitung von Windows // geschickt return (DefWindowProc(hwnd, msg, wParam, lParam)); }
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------
--------------------------------------------------------------Dann kommt diese Fehlermeldung:
--------------------Configuration: HelloWindows - Win32 Debug--------------------
Compiling...
HelloWindows.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/HelloWindows.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.HelloWindows.exe - 2 error(s), 0 warning(s)
Der Code ist korrekt da es von einem Profi kommt, Christian Rouselle.
Mein C++ ist version 6 und ich habe die DX8a_SDK insztalliert.
Kann mir einer helfen warum dieser Fehler kommt, das brinkt mich zum verzweifenln. Dieser Code stammt vom Buch Jetzt lerne ich Spieleprogrammieren mit DX und VC++[ Dieser Beitrag wurde am 19.01.2003 um 18:26 Uhr von Dimah editiert. ]
-
hast du eine windows applikation erstellt?
du darfst für diesen code KEINE konsolenanwendung machen!
-
-
CodeTags verwenden
-
ein Win32 Programm und KEIN Kosnolenprogramm erstellen....
-
-
Sorry, ich bin noch ganz neu bei C++, ämmmm kontet ihr vieleicht ganz genau sagen was ich anklicken muss?
-
Original erstellt von Gott der 2.:
Sorry, ich bin noch ganz neu bei C++, ämmmm kontet ihr vieleicht ganz genau sagen was ich anklicken muss?Es ist wirklich nicht sinnvoll, mit WinAPI zu beginnen, bevor Du halbwegs sicher C/C++ programmieren kannst, das versaut Dir nur den Stil und lernen wirst Du auch nicht das Wesentliche!
edit: zu ungenau!
[ Dieser Beitrag wurde am 19.01.2003 um 13:17 Uhr von nman editiert. ]
-
Original erstellt von elise:
**hast du eine windows applikation erstellt?du darfst für diesen code KEINE konsolenanwendung machen!**
Ich war schnelle
-
Original erstellt von DasPinsch:
Ich war schnelle*lol*
@Gott der 2.
datei->neu->WIN32-Anwendung
-
@Gott der 2.
Der Thread gehört hier nicht hin, hier gehts nur um Standard C++.
Thread verschoben ins msvc Forum. MFC mit dem Visual C++
-
Auch hier gehört er nicht rein ->>> WinAPI