Grafikprogrammierung...Erstversuch...Fragen....
-
Bei 5 Leutz darf das angestrebte Ziel aber ruhig etwas größer sein

-
zum Thema Kreise würde ich mal nach Bresenham googlen... der hat da auch einen Algorithmus zum Rastern von Kreisen beschrieben
-
hallo,
das gesamtprojekt wird auch noch einiges größer, nur wir wollen klein anfangen und uns langsam rantasten.
-
hallo Vertexwahn,
ich probiere schon die ganze Zeit mal deinen Code zu testen, nur leider bekomme ich da immer 2 fehlermeldungen beim linken.
LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
Debug/main.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweisemache ich da was falsch?
-
Du hast das Symbol "main" nicht aufgelöst.
Bye, TGGC (Demo or Die)
-
und was heißt das?
-
daß deinem Programm die main() Funktion fehlt (die ist in C(++) Haupteinstiegspunkt für eine Exe-Datei). Wenn du das Programm als Konsolenanwendung schreibst, hilft dir die WinMain aus dem obigen Code herzlich wenig.
-
so, ich habe das ganze nun mal anders versucht.
ich habe einige andere beispielprogramme gefunden. da gab es erst ein paar problme beim compilieren und linken, die habe ich schon beseitigt.
Nun habe ich das Problem, dass ich nicht weiß, wie ich z.B. aus der main die den Grafik-Teil ansprechen soll.
Das Programm soll irgendwelche Kurven zeichnen.
ICh habe den Code mal angehangen. Wäre toll, wenn mir da jemand weiter helfen könnte.Das ganze soll ja unter windows laufen.
Gruß
#undef WIN32_LEAN_AND_MEAN #include <stdafx.h> #include <windows.h> #include <gdiplus.h> #include <iostream.h> using namespace Gdiplus; VOID OnPaint(HDC hdc) { Graphics graphics(hdc); Pen blackPen(Color::Black); PointF points[]={PointF( 0, 0), PointF(40, 70), PointF(150, 90), PointF(200, 30)}; graphics.TranslateTransform(50, 50); for(float t=0.0f; t<4.0f; t+=0.5f) { graphics.DrawCurve(&blackPen, points, 4, t); } } 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); } } INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, INT iCmdShow) { HWND hWnd; MSG msg; WNDCLASS wndClass; GdiplusStartupInput gdiPlusInput; ULONG_PTR gdiPlusToken; // Initialisierung von GDI+. Status status = GdiplusStartup(&gdiPlusToken, &gdiPlusInput, NULL); if(status != Ok) return 0; 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("GDIPLUSDEMO"); RegisterClass(&wndClass); hWnd = CreateWindow(TEXT("GDIPLUSDEMO"), TEXT("GDI+ Demo"), 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); } // GDI+ beenden. GdiplusShutdown(gdiPlusToken); return msg.wParam; } void main(void) { int i; i= 0; cout << "\n test \n"; }
-
du musst ein Win32 Anwendungsprojekt erstellen und nicht eine Konsolenanwendung!
in der Konsolenanwendung ist der Standardeintrittspunkt main
in der Win32 Anwendung ... WinMain
-
hallo,
ja klar, was auch sonst. das wars, vielen dank.
gruß