[LNK2019] Einstellungen überprüfen??
-
Hallo,
Ich bin vor 3 Tagen von Dev-C++ auf VC++ umgestiegen..
Nachdem ich einige Probleme schon gelöst habe finde ich auf dieses hier keine Antwort:hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__DispatchMessageA@4" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__TranslateMessage@4" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__PeekMessageA@20" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetSystemMetrics@4" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__RegisterClassA@4" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadIconA@8" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__LoadCursorA@8" in Funktion "_WinMain@16".
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetStockObject@4" in Funktion "_WinMain@16".Dass ist nur eine kleine Auswahl von insgesamt 15 Fehlermeldungen.
Davor ist eine lange Liste mit Warnungen dass manche Makros neudefiniert würden...Alles windows makros...
Der Code funktioniert auf Dev-C++ weswegen ich glaube dass es an irgendeiner VC++ einstellung leigt und mit 5 Klicks wahrscheinlich schon gelöst ist. (Wie mein Zeichensatzproblem wofür ich 2h gebraucht hab)
aber falls nicht hier ist der Code zu den Fehlermeldungen oben:int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow){ // Lokale Variablen // Variable für Windowsnachrichten MSG msg; // Datenstruktur mit Variablen für eine Fensterklasse WNDCLASS wc; static TCHAR szAppName[] = "test-FRP"; static TCHAR szWindowName[] = "Das Hauptfenster"; hInstanceApp = hInstance; // globales Handle auf die // Instance der WINAPI // Protokolldatei wird neu angelegt protokoll_neu ("Protokolldatei zum Fenster-Rahmen-Projekt"); // Die Fensterklasse wird mit Daten gefüllt wc.cbClsExtra = 0; // Extra Speicher wird nicht benötigt. wc.cbWndExtra = 0; // dto. wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); // Hintergrundfarbe festlegen wc.hCursor = LoadCursor (NULL, IDC_ARROW); // Mauspfeil laden wc.hIcon = LoadIcon (hInstanceApp, IDI_APPLICATION); // Programmsymbol laden wc.hInstance = hInstanceApp; // Erkennungscode unseres Programms an die Fensterklasse übergeben wc.lpfnWndProc = WindowProc; // Name unserer CALLBACK Funktion übergeben wc.lpszClassName = szAppName; // Name unseres Programms übergeben wc.lpszMenuName = NULL; // Menü deaktivieren wc.style = CS_HREDRAW | CS_VREDRAW; // Darstellungsmodus normal // Windowsfensterklasse anmelden & gelingen überprüfen if (!RegisterClass(&wc)){ FehlerBox (false, "Fehler beim Erzeugen der Fensterklasse.", "Fehler - Programmende"); }else{ protokoll ("Fensterklasse erfolgreich angelegt."); } // else // Bildschirmauflösung erfragen und in unsere Variablen ablegen iAufloesungX = GetSystemMetrics(SM_CXSCREEN); iAufloesungY = GetSystemMetrics(SM_CYSCREEN); // Eintrag Protokoll Datei sprintf (sProtokollText,"Auflösung gesetzt auf:\nX: %d\nY: %d", iAufloesungX,iAufloesungY); protokoll (sProtokollText); // Das konkrete Fenster erzeugen fenster_erstellen(szAppName, szWindowName); init(); // Initialisierungsarbeiten // Hautpschleife while (TRUE){ // Prüfen, ob eine Nachricht zum verarbeiten vorliegt if (PeekMessage (&msg, NULL, 0,0, PM_REMOVE)){ // Prüfen, ob die Nachricht besagt, dass das Programm beendet werden muss. // Wenn ja, brechen wir unsere Endlosschleife ab. if (msg.message == WM_QUIT) break; // Nachricht übersetzen und an die CALLBACK Funktion weiterleiten. TranslateMessage (&msg); DispatchMessage (&msg); } programm(); } // Hauptschleife clean_up(); return (msg.wParam); }
aso PSDK usw. sollte eigentlcih eingebunden sein... Ich kreig keine Fehlermeldungen dass eine Datei nicht gefunden worden wäre..
Vielen Dank
Hannes
-
DU musst noch die user32.lib dazulinken...
OT: Dev-C++ ist nicht zu empfehlen... nimm VS2005EE oder CB
-
Hey cool das hat fast alle ausradiert...
aber sollte user32.lib icht autamtisch mit von der Partie sein?
Wie kommt es dass es bei Dev-C++ geht und nicht bei VC++(übrigens ich habe VC++ 2005 EE)?
Nur noch ein Fehlermeldung ist jetzt da:
hauptprogramm.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__GetStockObject@4" in Funktion "_WinMain@16".
Vielen vielen dank für die schnelle antwort ich hät mich wahrscheinlich in den tiefen des netzes verloren...
Hannes
-
Ok nvm ich habs gefunden es ist die GDI32.lib...
Jetzt funktioniert alles und sämtliche Warnungen sind weg...
Hach ein schönes Gefühl etwas zum laufen gebracht zu haben...vielen vielen vielen dank
Hannes
-
Upps... sorry hab ich überlesen...
Dann solltes Du aber keine Probleme haben, *wenn* Du die Anleitung zur PSDK-Integration gelesen *hättest*.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html
-
Ja hab ich eigentlich.
Aber nach nochmaligen durchlesen hab ich gmeerkt dass ich statt corewin_express.vsprops zu editieren, CoreWin.vsprops editiert habe. Bzw. war es da schon von vorneherein eingefügt.Blöder Fehler blöder user.. tut mir leid..
Hannes