c++ WinAPI und lauter Fehler
-
Ich progge nun seit gut nem Monat in c++. Bisher aber ohne API und so wollte ich schon mehrere Male mit einer anfangen. Bisher habe ich aber noch nicht EIN Tutorial gefunden, in dem die codes auf meinem devc++ funktioniert haben. Ich weiß nicht, was die da machen, dass es klappt, bei mir klappt im Moment jedenfalls gar nichts. Hier mal ein Beispiel:
#include <windows.h> #define STRICT1 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); const char szAppName[] = "Ausgabe im Anwendungsbereich"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MSG msg; HWND hWnd; WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; RegisterClass(&wc); hWnd = CreateWindow( szAppName, szAppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_PAINT: { PAINTSTRUCT ps; HDC hDC; const char szText[] = "Hallo, dies ist der Text."; hDC = BeginPaint(hWnd, &ps); { TextOut(hDC, 270, 230, szText, sizeof(szText) - 1); TextOut(hDC, 270, 250, szText, sizeof(szText) - 1); } EndPaint(hWnd, &ps); return 0; } case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, message, wParam, lParam); }
Fehler:
[Linker error] undefined reference to
GetStockObject@4' [Linker error] undefined reference to
TextOutA@20'
[Linker error] undefined reference to `TextOutA@20'
ld returned 1 exit statusPS:Das ist mein erster Beitrag bei euch, ich bin Anfänger und kenne mich nicht gut genug aus um zu wissen, wonach ich suchen könnte
Hoffe, ihr habt Verständnis
-
Die ersten paar Fehlermeldungen müsstest du schon posten
So auf Anhieb sehe ich keine...Ah, editiert: Ich würde sagen der Linker kennt die gdi32.lib nicht.
-
ja, hab die Fehler vergessen...
Ähm, kannst du mir nch sagen, wie man diese *.lib-Datei einfügt?
-
Kommt drauf an welche IDE/Compiler du benutzt
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich benutze DevC++4.9.9.2
Und der Compiler ist soweit ich das richtig sehe mingw32?
-
Projekt Optionen (Alt+P).
-
Tut mir leid, aber bitte NOCH genauer. Ich kann diese Option nicht ausführen, da ich kein Projekt, sondern einzelne Dateien habe...
Außerdem kann ich beim besten Willen keine gdi32.lib finden. Und selbst wenn, wüsste ich nicht wohin damit und wie weiter...
-
Hmm, dann wirste wohl nen Projekt raus machen müssen?
Ich benutze und kenne die IDE nicht, aber hier z.B. wurde auch die gdi32 dabeigepackt:
http://wiki.codeblocks.org/images/7/75/Compile_sdl_include_libraries.pngBei mingw liegt die gdi32.lib meine ich auch dabei, hat da aber glaube ich nicht die Endung .lib...
-
bei mir kommt immer ein Fehler, sobald ich die Optionen aufrufen will. Den Fehler hier zu posten wäre wohl sinnlos, da wahrscheinlich keiner was mit den Zahlen anfangen könnte...Könnte es an der Version liegen. Is scheinbar ja nur ne Beta-Version von dev. Ich habs auch schon neu installiert->bringt leider auch nichts.
-
geeky hat recht, ohne Projekt geht da (soweit ich weiß) nix.
Schreib aber mal den Fehler.
-
Such dir lieber ne andere IDE aus (zB eben CodeBlocks oder das Visual Studio als Express Edition), devc++ is nicht so gut und etwas Buggy.
-
Es gibt auch noch "Visual MinGW" und "MinGW Studio" als IDE, mindestens eines auch für Linux.
Hab aber keine Ahnung wie gut die sind .
-
Visual Studio Express Edition is kostenlos, oder?
-
Ja
und - als Microsoft Abtrüniger sag ich das zwar ungern - eigentlich ziemlich gut.
-
Dark_DanI schrieb:
Visual Studio Express Edition is kostenlos, oder?
ja, siehe:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html(PS: Du solltest Dir das ISO runterladen um eine Registrierung zu ersparen)
-
Danke, ich hab nun die iso nur weiß ich nicht, we man compilt. Bei devc++ ging ja alles automatisch nur bei VC? Muss man das da manuell irgendwie machen, wenn ja, wie?
-
Win32-Projekt beginnen, Quellcode basteln, "F5"
-
Du musst
1. das VC2005 EE installieren
2. das PSDK runterladen (am besten auch das ISO) und installieren
3. das PSDK einbinden
4. Nun kanns losgehen (Datei|Neu...|Projekt|Win32...)Siehe auch:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html
-
Jochen Kalmbach schrieb:
3. das PSDK einbinden
Sofern man das PSDK im richtigen Ordner installiert (...\Microsoft Visual Studio 8\VC\PlatformSDK\), fällt dieser Punkt sogar weg.
-
Schent funktioniert zu haben...Es kmmen nun neue Fehler, aber d scheinen wohl mehr Compiler bedingt. So gut wie kener meneralten codesfunzt noch...Ist VC genauer? Zum Beispiel hat er gemeckert, als ich:
long double a = 10;
long double E = a * sqrt(5);
machen wollte...long double a = 10;
long double E = a * sqrt(5.0);
muss es hier ja heißen...Bei dev war sowas noch egal.
Und bei der WINAPI wo ich ja sowieso schon kaum Ahnung von habe, zeigt er mir nun Fehler, von denen ich kaum weiß wie zu beheben, aber das wird sicher schon. Ich melode mich wieder, wenns Probleme gibt.Danke an alle, die mir bis hierhin und im folgenden geholfen haben/helfen werden.