Probleme mit MVC2005Express & GDI+
-
Hallo ans Forum,
habe natürlich dafür das ich mit C++ starte denkbar doofe Anfangsbedingungen
da sehr speziell.AMD64 mit XP64 als Betriebssystem
MVC2005Express als IDEStoße oft bei Tutorials auf das Problem das ich einfache *.cpp & *.h Dateien vorfinde
aber nicht verstehe wie ich die dann in meiner IDE zum laufen bekomme.
Wollte jetzt mit GDI+ ein wendig rumprobieren und bin wie folgt vorgegangen.1. File/New Project => General/Empty Project => OK
Dann:
2. Project/Add New Item => main.cpp => OK
und hier dann den Code vom der Microsoft-Seite eingepasted.#define UNICODE #include <windows.h> #include <gdiplus.h> using namespace Gdiplus; VOID OnPaint(HDC hdc) { Graphics graphics(hdc); Pen pen(Color(255, 0, 0, 255)); graphics.DrawLine(&pen, 0, 0, 200, 100); } LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, INT iCmdShow) { HWND hWnd; MSG msg; WNDCLASS wndClass; GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; // Initialize GDI+. GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); wndClass.style = CS_HREDRAW | CS_VREDRAW; wndClass.lpfnWndProc = WndProc; wndClass.cbClsExtra = 0; wndClass.cbWndExtra = 0; wndClass.hInstance = hInstance; wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndClass.lpszMenuName = NULL; wndClass.lpszClassName = TEXT("GettingStarted"); RegisterClass(&wndClass); hWnd = CreateWindow( TEXT("GettingStarted"), // window class name TEXT("Getting Started"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL); // creation parameters ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } GdiplusShutdown(gdiplusToken); return msg.wParam; } // WinMain LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch(message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); OnPaint(hdc); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, message, wParam, lParam); } } // WndProcUnd bekomme dann Fehlermeldungen wie diese
1>main.obj : error LNK2019: unresolved external symbol _GdipCreatePen1@16 referenced in function "public: __thiscall Gdiplus::Pen::Pen(class Gdiplus::Color const &,float)" (??0Pen@Gdiplus@@QAE@ABVColor@1@M@Z)
Ich habe mich mal an ein paar Tutorials von Allegro gesetzt.
Das hat bisher ganz gut geklappt. Wollte jetzt aber die GDI+- Bibliothek zusätzlich nutzen,
da Allegro nicht in Nachkommastellen sauber rotieren kann.
Auch das Alpha-Blending ist in Allegro nicht möglich.
Vielleicht muß ich auch auf Allegro verzichten.
Nur habe ich bisher kein einziges GDI+Script zum laufen bekommen.
Vielleicht könnt ihr mir helfen.Vielen Dank
jano
-
Ist zwar WINAPI aber es sieht danach aus als fehlt dir eine LIB welche du noch linken musst.
Der Code ist für den Compiler OK und steigt aber beim linken aus.
-
Ja, es fehlt die gdiplus.lib
-
Dieser Thread wurde von Moderator/in dEUs aus dem Forum MFC (Visual C++) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.