Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 14, 2025 20:04

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Tutorial macht Probleme (Lektion 1)
BeitragVerfasst: Mo Apr 18, 2005 14:51 
Offline
DGL Member

Registriert: Di Nov 16, 2004 17:24
Beiträge: 9
Und zwar les ich grade das Open-GL-Tutorial durch, bin grade noch bei Lektion 1. Ich bin grade soweit, bis die WndProc-Funktion angesprochen wird (zum ersten mal). Da hab ich einfach mal alles an Code in mein Delphi (2005 PE) kopiert und kompiliert. Folgender Code:

Code:
  1. PROGRAM Main;
  2.  
  3. USES
  4.     Windows,Messages, dglOpenGL;
  5.  
  6. function WndProc(hWnd: HWND; Msg: UINT;  wParam: WPARAM;  lParam: LPARAM): LRESULT; stdcall;
  7. begin
  8.   case (Msg) of
  9.     WM_CREATE:
  10.       begin
  11.         // Hier kann Zeugs rein das beim Programmstart ausgeführt werden soll
  12.       end;
  13.     WM_CLOSE:
  14.       begin
  15.         PostQuitMessage(0);
  16.         Result := 0
  17.       end;
  18.     WM_SIZE:          // Größe anpassen
  19.       begin
  20.         glResizeWnd(LOWORD(lParam),HIWORD(lParam));
  21.         Result := 0;
  22.       end;
  23.     else
  24.       Result := DefWindowProc(hWnd, Msg, wParam, lParam);    //  Standard-Behandlung aller anderen Messages
  25.   end;
  26. end;
  27.  
  28. FUNCTION WinMain(hInstance : HINST; hPrevInstance : HINST;
  29.                  lpCmdLine : PChar; nCmdShow : Integer) : Integer; stdcall;
  30. VAR
  31.   msg : TMsg;
  32.   appStart : DWord;
  33. BEGIN
  34.     Finished := False;
  35.  
  36.     // Das Programm wird initialisiert (Fenster erstellen!)
  37.     if not glCreateWnd(800, 600, FALSE, 32) THEN
  38. BEGIN;
  39. Result := 0;
  40.             Exit;
  41.     END;
  42.  
  43.     // Main message loop:
  44.     while not finished do
  45.     begin
  46.             if (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) then
  47. begin
  48.                 if (msg.message = WM_QUIT) then finished := True
  49.                 else
  50.                 begin
  51. TranslateMessage(msg);
  52.                         DispatchMessage(msg);
  53.                 end;
  54.             end
  55.             else
  56.             begin
  57.                 glDraw();                           // Szene zeichnen
  58.                 SwapBuffers(h_DC);                  // Szene ausgeben
  59.             end;
  60.     end;
  61.   glKillWnd(FALSE);
  62.   Result := msg.wParam;
  63. end;
  64.  
  65. BEGIN
  66. WinMain( hInstance, hPrevInst, CmdLine, CmdShow );
  67. END.


Mal ganz davon ab, dass ich überhaupt schon Angst hab, einen so formartierten Code überhaupt zu kompilieren (Naja, Ansichtssache), kommen folgende Fehler:

Zitat:
[Fehler] Project3.dpr(20): E2003 Undefinierter Bezeichner: 'glResizeWnd'
[Fehler] Project3.dpr(34): E2003 Undefinierter Bezeichner: 'Finished'
[Fehler] Project3.dpr(37): E2003 Undefinierter Bezeichner: 'glCreateWnd'
[Fehler] Project3.dpr(57): E2003 Undefinierter Bezeichner: 'glDraw'
[Fehler] Project3.dpr(58): E2003 Undefinierter Bezeichner: 'h_DC'
[Fehler] Project3.dpr(61): E2003 Undefinierter Bezeichner: 'glKillWnd'
[Warnung] Project3.dpr(66): W1000 Symbol 'HPrevInst' ist veraltet
[Warnung] Project3.dpr(66): W1002 Symbol 'CmdLine' ist plattformspezifisch


Der Code ist 1:1 vom Tutorial in Delphi und 1:1 von dort hier rein kopiert ;)

Was mach ich falsch? Hab ich was vergessen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 15:44 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also....hmmmm....Ich würd.....hmmm....das is ja APICode!....

Bei solch nem Code (mal ganz abgesehn wie er formatiert ist) wird mir immer übel. Die Templates hast du aber schon mal angeguckt (als Referenz). Da haben wir auch ein API Template.

Solltest du API Programmierung net so doll finden kannst du ja erstmal die VCL Variante verwenden. (Ich nutz bisher ausschließlich die.)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 16:03 
Offline
DGL Member

Registriert: Di Nov 16, 2004 17:24
Beiträge: 9
Flash hat geschrieben:
Also....hmmmm....Ich würd.....hmmm....das is ja APICode!....

Bei solch nem Code (mal ganz abgesehn wie er formatiert ist) wird mir immer übel.

Naja, ich versuche aber eher, das Tutorial durchzuarbeiten. Da ist es ja eher nebensächlich, ob es VCL-Code oder API-Code ist ;)
Davon ab find ich API-Code gar nicht mal so schlimm... ich persöhnlich kenne mich damit zwar nicht unbedingt aus und bin ehrlich gesagt auch ein wenig zu Faul dafür, aber es gibt ja Leute, die fast alles nonVCL programmieren ;)


Zitat:
Die Templates hast du aber schon mal angeguckt (als Referenz). Da haben wir auch ein API Template.

Solltest du API Programmierung net so doll finden kannst du ja erstmal die VCL Variante verwenden. (Ich nutz bisher ausschließlich die.)


Von den Templates hab ich mir bisher nur ein VCL-Temp angesehen. Aber ich dachte, das wäre nicht nötig, wenn ich einfach die Tutorials durcharbeite. Denn normalerweise gehe ich davon aus, dass in einem Tutorial alles weitreichend erklärt ist ;)


Was jedoch leider nicht mein Problem löst :(


Danke trotzdem für die Antwort :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 18:51 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Nein, dass solltest Du bei einem Tutorials nie machen ;) Eine Anleitung ersetzt das Studium nicht. Tutorial 1 setzt zwingend Kenntnisse über die WinAPI vorraus und versucht nur dazu zu stellen, wo die Verbindungen zu OpenGL sind. Diese selbst reichen selbstverständlich nicht aus und wir werden auch kaum ein Tutorials schreiben, dass die MSDN ersetzen kann. Solltest Du nicht der WinAPI vertraut sein, empfehle ich Dir (aus heutiger Sicht) nicht mehr anzufangen diese zu erlernen, außer Du kennst einen verdammt guten Grund dazu ;) MS wird im Rahmen von .NET die WinAPI mehr oder mehr abschießen, so dass es vertane Zeit wäre. Solltest Du mehr Spiele (Vollbild-Apps) programmieren wollten, solltest Du Dich lieber in SDL einarbeiten, was quasi eine bessere WinAPI nachfolge antritt oder eben bei Fenster-Apps auf die VCL setzen. Entsprechende Templates findest Du bei uns unter Files und vermutlich ist es eher zu empfehlen ein solches zu nehmen, ne wenig anzuschauen und dann mit Tut2 fortzusetzen. Hatte versucht es im Tut 1 entsprechend anklingen zu lassen, da dieses eigentlich nur für jene Gedacht ist, die tiefergehend verstehen wollen, was im Hintergrund geschieht.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 19:23 
Offline
DGL Member

Registriert: Di Nov 16, 2004 17:24
Beiträge: 9
Naja, die wichtigsten (aber nur die ALLERwichtigsten) Dinge der WinAPI kenn ich ja (z.B. Messages empfangen oder senden... also die Grundlagen dazu). Ich hab auch nicht mehr großartig vor mich da reinzuarbeiten. Stattdessen hab ich auch schon ein paar mal in .NET reingeschnuppert und werde mich, spätestens wenn Longhorn erscheint, genauer damit befassen (vorher macht es auch kaum Sinn, weil nur verhältnismäßig sehr wenig Leute das .NET-Framework installiert haben).



Naja, dann mach ich einfach mal mit Kapitel 2 weiter... ich dachte nur, ich arbeite lieber ein Tutorial von vorne bis hinten durch ;)

Danke nochmal :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 19:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Zitat:
Stattdessen hab ich auch schon ein paar mal in .NET reingeschnuppert und werde mich, spätestens wenn Longhorn erscheint, genauer damit befassen (vorher macht es auch kaum Sinn, weil nur verhältnismäßig sehr wenig Leute das .NET-Framework installiert haben).

Dann gibt es schon längst die zweite Version und die meisten Leute haben dann bereits jahrelange Erfahrung damit, während du gerade erst anfängst. Würde ich mir also überlegen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 18, 2005 19:47 
Offline
DGL Member

Registriert: Di Nov 16, 2004 17:24
Beiträge: 9
LarsMiddendorf hat geschrieben:
Zitat:
Stattdessen hab ich auch schon ein paar mal in .NET reingeschnuppert und werde mich, spätestens wenn Longhorn erscheint, genauer damit befassen (vorher macht es auch kaum Sinn, weil nur verhältnismäßig sehr wenig Leute das .NET-Framework installiert haben).

Dann gibt es schon längst die zweite Version und die meisten Leute haben dann bereits jahrelange Erfahrung damit, während du gerade erst anfängst. Würde ich mir also überlegen.


Und was, wenn ich mich jetzt schon mit .NET auseinandersetze und mich richtig bemühe, .NET zu lernen? Dann kann ich etwas programmieren, was ich nur mit 2MB-Installern auf anderen Rechnern zum Laufen bringen kann. Und was bringt mir das? Erstmal nichts, weil sich kaum jemand freiwillig ein 100kb-Programm besorgt, das 2 MB Speicherplatz braucht ;)

Ganz nebenbei bin ich auch erst 14 und betreibe das Programmieren hauptsächlich als Hobby, jedoch mit Blick in die Zukunft gerichtet.


Außerdem: Wenn Longhorn erscheint und .NET 2.0 draußen ist und alle anderen schon jahrelange Erfahrungen in .NET haben, muss ich nicht erst damit anfangen, da ich auch in .NET die Grundlagen schon drauf hab. Ich hab mich nur noch nicht so drauf "festgelegt" ;)




Ist jedoch alles ein ganz anderes Thema und gehört nicht hier hin. Über Vor- und Nachteile von .NET kann man stundenlang pausenlos streiten, und kommt doch zu keinem Ende ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 17 Queries | GZIP : On ]