<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Visual C++ 2k5]]></title><description><![CDATA[<p>Ich hab mir heute C++ Visual 2k5 von Microsoft gehollt</p>
<p>Als ich dann endlich Das OpenGL Tut machen wolte sagte er mir das mir die windows.h fehlt is das nen scherz oder was?</p>
<p>Es kann doch nit sein das die windows.h fehlt das is doch glaube bei win irgentwo dabei zumindest hatte Dev-Cpp keine Probleme mit windows.h...</p>
<p>Das is total geil irgentwie:<br />
Dev-Cpp findet Glaux.lib nicht...(doch schon aber als ich es geladet hatte gings au net...)<br />
Und Visual findet windows.h nicht...</p>
<p>Code vom Tutorial:</p>
<pre><code>// Tutorial 1 &quot;Nur ein schwarzes Fenster&quot;
// gedownloaded von www.codeworx.org
// Version 1.0, Hans-Jakob Schwer, 7.11.2001
// Original von Jeff Molofee, neu kommentiert und übersetzt aus dem Englischen

#include &lt;windows.h&gt;  // diverse Windowsfunktionen
#include &lt;gl\glu.h&gt;   // Damit kann Glu32 genutzt werden.
#include &lt;gl\gl.h&gt;    // Damit kann OpenGL32 genutzt werden.
#include &lt;gl\glaux.h&gt; // Und das Gleiche nochmal für Glaux  

HGLRC hRC=NULL;         // Der OpenGL Rendering Context
HDC hDC=NULL;           // Geschützter GDI Device Context
HWND hWnd=NULL;         // Verweist später auf den Windows Handle
HINSTANCE hInstance;	// Die Instanz der Anwendung

bool keys[256]; // Vektor (Array) der den Status 
                // einzelner Tasten enthält    
                // (gedrückt/nicht gedrückt)

bool active=TRUE;  // Wenn active FALSE ist, wurde das 
                   // Fenster vom Benutzer minimiert.

bool fullscreen=TRUE; // Läuft das Programm im Vollbildmodus 
                      // oder nicht?

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);    
// WndProc wird deklariert

GLvoid ReSizeGLScene(GLsizei width, GLsizei height) 
// Initialisierung des OpenGL-Fensters
{
  if (height==0)
  {      
    height=1;    
  }

  // height darf nicht 0 sein, damit es im späteren 
  // Programmablauf nicht zu einer Division durch 0 kommt.

  glViewport(0, 0, width, height);
  // Hier wird der Mittelpunkt auf den die Perspektive zuläuft 
  // zurückgesetzt.

  glMatrixMode(GL_PROJECTION); 
  // Hier wird die Projektionsmatrix festgelegt

  glLoadIdentity(); 
  // und angepasst

  gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f); 
  // Hier wird die das Verhältnis der Höhe zur Breite übergeben
  // und der Verzerrungswinkel von 45 Grad übergeben

  glMatrixMode(GL_MODELVIEW); 
  // Hier wird die sogenannte modelview-Matrix festgelegt

  glLoadIdentity(); 
  // und angepasst.
}

int InitGL(GLvoid)
{
  glShadeModel(GL_SMOOTH); 
  // Das Smooth Shading wird aktiviert, das 
  // sehr schöne Farbübergänge auf Körpern ermöglicht.

  glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
  // In diesem Falle ein schwarzer Hintergrund

  glClearDepth(1.0f); 
  // depht buffer zurückgesetzt

  glEnable(GL_DEPTH_TEST); 
  // Aktivierung des depht Tests (dazu später mehr.)

  glDepthFunc(GL_LEQUAL); 
  // Der Typ des Depht Tests wird festgelegt

  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 
  // Perspektive wird festgelegt

  return TRUE; // Initialisierung scheint geklappt zu haben!
}

int DrawGLScene(GLvoid) 
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
  // Die vorherige Szene wird vom Bildschirm gelöscht, 
  // damit die neuen nicht einfach über die alten    
  // Objekte gezeichnet werden

  glLoadIdentity(); 
  // modelview-Matrix wird wieder einmal zurückgesetzt

  return TRUE; // Alles hat geklappt
}

GLvoid KillGLWindow(GLvoid)
{

  if (fullscreen) // Kontrolle auf Vollbildmodus
  {
    ChangeDisplaySettings(NULL,0); // Zurück zum Desktop
    ShowCursor(TRUE); // Der abgeschaltete Mauszeiger 
                      // wird wieder angezeigt (Nicht 
                      // vergessen ;)
  }

  if (hRC) // Rendering Context (RC) vorhanden?
  {
    if (!wglMakeCurrent(NULL,NULL)) // Kann der DC und RC überhaupt 
                                    // gelöscht werden?
    {
      MessageBox(NULL,&quot;Entfernen des DC und RC fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK | MB_ICONINFORMATION);
    }

    if (!wglDeleteContext(hRC)) // Kann der RC gelöscht werden?
    {
      MessageBox(NULL,&quot;Entfernen des RC fehlgeschlagen.&quot;,&quot;Fehler...&quot;,MB_OK | MB_ICONINFORMATION);
    }
      hRC=NULL; // Der RC wird NULL gesetzt, also entfernt
    }

   if (hDC &amp;&amp; !ReleaseDC(hWnd,hDC)) 
   // Kann der Device Context (DC) freigegeben werden?
   {
     MessageBox(NULL,&quot;Freigabe des Device Context fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK | MB_ICONINFORMATION);

     hDC=NULL; // Der DC wird entfernt
   }

   if (hWnd &amp;&amp; !DestroyWindow(hWnd)) 
   // Kann das Programmfenster geschlossen werden?
   {
     MessageBox(NULL,&quot;Konnte hWnd nicht löschen.&quot;,&quot;SHUTDOWN ERROR&quot;,MB_OK | MB_ICONINFORMATION);

     hWnd=NULL; // Setze den hWnd auf NULL
   }

   if (!UnregisterClass(&quot;OpenGL&quot;,hInstance)) 
   // Kann die Registrierung rückgängig gemacht werden?

   {
     MessageBox(NULL,&quot;Konnte Klasse nicht entfernen.&quot;,&quot;SHUTDOWN ERROR&quot;,MB_OK | MB_ICONINFORMATION);

     hInstance=NULL; // Setze hInstance auf NULL
   }
}

BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{

  GLuint PixelFormat; // Speichert das Pixelformat

  WNDCLASS wc; // wc wird eine Instanz der Fensterklasse

  DWORD dwExStyle; // weitere Informationen
  DWORD dwStyle; // Fensterinformationen

  RECT WindowRect; 
  // Speicher für aktuelle Auflösung

  WindowRect.left=(long)0; 
  // Die linke Seite des Rechtecks wirtd auf 0 gesetzt

  WindowRect.right=(long)width; 
  // Hier wird die gewünschte Breite des Fensters gespeichert

  WindowRect.top=(long)0; 
  // Die obere Seite wird auch auf 0 gesetzt

  WindowRect.bottom=(long)height; 
  // Und hier wird die Höhe abgelegt

  fullscreen=fullscreenflag; 
  // Hier wird fullscreen 
  // auf den Wert von fullscreenflag 
  // gesetzt, welches ja übergeben wurde

  hInstance = GetModuleHandle(NULL); 
  // Die Instanz des Programmes bekommt ein 
  // Handle zugeordnet

  wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; 
  // Bei Veränderungen in der Höhe und/oder Breite, 
  // soll ne gezeichnet werden

  wc.lpfnWndProc = (WNDPROC) WndProc; 
  // WndProc behandelt die auftretenden Nachrichten

  wc.cbClsExtra = 0; // Wird nicht benötigt
  wc.cbWndExtra = 0; // und das auch nicht
  wc.hInstance = hInstance; // Die Instanz wird festgelegt
  wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); 
  // Lädt das Standardsymbol
  wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
  // Lädt einen Cursor
  wc.hbrBackground = NULL; 
  // Es soll kein bestimmter Hintergrund angezeigt werden
  wc.lpszMenuName = NULL; // Auch ein Menü wird nicht benötigt.
  wc.lpszClassName = &quot;OpenGL&quot;; // OpenGL wird der Name der Klasse

  if (!RegisterClass(&amp;wc)) // Versuch die Klasse zu registrieren
  {
    MessageBox(NULL,&quot;Konnte die Fensterklasse nicht registrieren.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE zurückgeben und beenden
  }

  if (fullscreen) // Soll im Vollbildmodus gestartet werden
  {

    DEVMODE dmScreenSettings; 
    // Instanz von DEVMODE wird erzeugt

    memset(&amp;dmScreenSettings,0,sizeof(dmScreenSettings)); 
    // Diese wird geleert

    dmScreenSettings.dmSize=sizeof(dmScreenSettings); 
    // dmsize soll genauso groß wie die dmScreenSettings sein

    dmScreenSettings.dmPelsWidth = width; 
    // Die drei Werte (height, width und bits) 
    // wurden der Prozedur übergeben und werden 
    // nun in dmScreenSettings gespeichert

    dmScreenSettings.dmPelsHeight = height;
    dmScreenSettings.dmBitsPerPel = bits; 
    dmScreenSettings.dmFields=DM_BITSPERPEL|
    DM_PELSWIDTH|DM_PELSHEIGHT; 
    // Hier werden die drei Werte in einem Ausdruck gespeichert

    if (ChangeDisplaySettings(&amp;dmScreenSettings,CDS_FULLSCREEN)
        !=DISP_CHANGE_SUCCESSFUL)    
    {

    // CDS_FULLSCREEN blendet zusätzlich die Startleiste aus

      if (MessageBox(NULL,&quot;Der gewünschte Vollbildmodus wird nicht unterstützt, soll stattdessen im Fenstermodus ausgegeben werden?&quot;,&quot;OpenGL&quot;,MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
      {
        fullscreen=FALSE; 
        // Der Benutzer möchte im Fenster weitermachen, 
        // dazu wird fullscreen auf FALSE gesetzt
      }

      else
      {
        return FALSE;
        // Falls der Benutzer das Programm aus gegebenen 
        // Anlass beenden will, wird FALSE zurückgegeben.
      }
    }
  }

  if (fullscreen) 
  // Konnte in den Vollbildmodus geschaltet werden? 
  // (Wenn nicht, wird ja im Fenster weitergemacht!)
  {
    dwExStyle=WS_EX_APPWINDOW; // Fenstereigenschaften
    dwStyle=WS_POPUP; // -&quot;-
    ShowCursor(FALSE); // Der Mauszeiger wird nicht angezeigt
  }

  else
  {

    dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; 
    // Das Fenster soll zusätzlich einen 3D Rahmen bekommen

    dwStyle=WS_OVERLAPPEDWINDOW; 
    // Ein typisches Windowsfenster mit 
    // Minimieren, Maximieren, etc
  }

  AdjustWindowRectEx(&amp;WindowRect, dwStyle, FALSE, dwExStyle); 
  // Fenster wird angepasst

  if (!(hWnd=CreateWindowEx( dwExStyle, 
  // Die erweiterten Eigenschaften des    Fensters
  &quot;OpenGL&quot;, // Der Name der Klasse
  title, // Der Titel des Fensters
  WS_CLIPSIBLINGS | // Wird von OpenGL benötigt
  WS_CLIPCHILDREN | // Wird auch von OpenGL benötigt
  dwStyle, // auch Eigenschaften des Fensters
  0, 0, // Die Position des zu erstellenden Fensters
  WindowRect.right-WindowRect.left, 
  // Hier werden die ermittelten Werte für die Breite eingesetzt
  WindowRect.bottom-WindowRect.top, // und hier für die Länge
  NULL, // Es soll kein übergordnetes Fendster erstellt werden
  NULL, // kein Menü
  hInstance, // Die Instanz wird übergeben
  NULL))) // Wird nicht benötigt

  {
    KillGLWindow(); // Grafikeinstellungen zurücksetzen
    MessageBox(NULL,&quot;Fenster konnte nicht erstellt werden.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; 
  }

  static PIXELFORMATDESCRIPTOR pfd= 
  // pdf ist jetzt ein PIXELFORMATDESCRIPTOR
  {
    sizeof(PIXELFORMATDESCRIPTOR), 
    // Die größe muss natürlich stimmen
    1, // Versionsnummer
    PFD_DRAW_TO_WINDOW | 
    // Das Format muss in Fenster sichtbar sein können
    PFD_SUPPORT_OPENGL | 
    // OpenGL muss unterstützt werden
    PFD_DOUBLEBUFFER, 
    // Double Buffering muss unterstützt werden
    PFD_TYPE_RGBA, 
    // Das RGBA (Rot,Grün,Blau,Alpha(Transparenz)) 
    // muss unterstützt werden
    bits, 
    // Die Farbtiefe, die schon 
    // übergeben wurde, wird hier benötigt
    0, 0, 0, 0, 0, 0, // wird nicht benötigt
    0, // kein Alpha Buffer
    0, // Shift Bit ignoriert
    0, // kein Accumulation Buffer
    0, 0, 0, 0, // nicht benötigt
    16, // 16Bit Z-Buffer (Depth Buffer)
    0, // kein Stencil Buffer
    0, // kein Auxiliary Buffer
    PFD_MAIN_PLANE, 
    // Die Hauptebene auf die später gezeichnet wird
    0, // unwichtig
    0, 0, 0 // keine Ebenenmasken benötigt
  };

 if (!(hDC=GetDC(hWnd))) // Versuch, den DC zu bekommen
   {
     KillGLWindow(); 
     // Alles rückgängig machen
     MessageBox(NULL,&quot;Konnte keinen DC erstellen.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
     return FALSE; // FALSE zurückgeben, beenden
   }

  if (!(PixelFormat=ChoosePixelFormat(hDC,&amp;pfd))) 
  // Kann Windows ein passendes finden? 
  { 
	// Falls keins gefunden werden kann:
    KillGLWindow(); // Alles zurücksetzen
    MessageBox(NULL,&quot;Konnte kein passendes Pixelformat finden.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE zurück und Ende.
  }

  if(!SetPixelFormat(hDC,PixelFormat,&amp;pfd))
  // Kann das Pixelformat gesetzt werden?
    {
      KillGLWindow(); // Leider nicht, Fehlerpopup und raus
      MessageBox(NULL,&quot;Konnte Pixelformat nicht setzen.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
      return FALSE; // FALSE zurück und raus
   }

  if (!(hRC=wglCreateContext(hDC))) // Versuch den RC zu bekommen
    {
      KillGLWindow(); // Alles rückgängig machen
      MessageBox(NULL,&quot;Konnte keinen Rendering Context bekommen.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
    }

  if(!wglMakeCurrent(hDC,hRC)) // Versuch den RC zu aktivieren
  {
    KillGLWindow(); // hat nicht geklappt, also alles zurück
    MessageBox(NULL,&quot;Konnte den Rendering Context nmicht aktivieren.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE;
  }

  ShowWindow(hWnd,SW_SHOW); // Fenster anzeigen
  SetForegroundWindow(hWnd); // Priorität des Programms wird erhöht
  SetFocus(hWnd); // Tastatureingaben werden 
                  // jetzt an das Programm geleitet

  ReSizeGLScene(width, height); // Die Perspektive wird aktiviert

  if (!InitGL()) // Initialisiere das OpenGL Fenster
  {
    KillGLWindow(); // Falls das nicht geklappt 
                    // haben sollte alles rückgängig machen

    MessageBox(NULL,&quot;Initialisierung fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE wird zurückgegeben
  }

  return TRUE; // Alles hat geklappt!!!

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

  switch (uMsg) // Sind Nachrichten in der Nachrichtenschleife?
  {

    case WM_ACTIVATE: // Ist das Programm aktiv?
    {
      if (!HIWORD(wParam)) // Ist das Programm nicht minimiert?
      {
        active=TRUE; // active wird TRUE
      }

     else
     {
       active=FALSE; // Programm ist minimiert
     }   

     return 0; // Rückgabe: 0
   }

    case WM_SYSCOMMAND: // Ist ein Systemkommando 
                        // (wie z.B. &quot;Bildschirmschoner 
                        // soll gestartet werden&quot;) vorhanden?
    {
      switch (wParam) // wParam würde diesen Befehl enthalten
      {
        case SC_SCREENSAVE: 
        // Versucht Windows den Bildschirmschoner zu starten

        case SC_MONITORPOWER: 
        // Soll der Monitor in den Stromsparmodus gehen?

        return 0; 
        // Beide Fälle werden durch die Rückgabe von 0 verhindert
      }
      break; // Das wars.
    }

    case WM_CLOSE: // Ist eine WM_CLOSE Nachricht vorhanden?
    {
      PostQuitMessage(0); 
      // Die Nachricht zum Beenden wird &quot;gepostet&quot;

      return 0; // und zurück.
    }

    case WM_KEYDOWN: // Drückt der Benutzer eine Taste???
    {
      keys[wParam] = TRUE; 
      // Der Wert im Array keys[] der dem Code 
      // der Taste entspricht, wird true gesetzt

      return 0; // und zurück...
    }

    case WM_KEYUP: // Wurde eine Taste losgelassen?
    {
      keys[wParam] = FALSE; 
      // Wen ja, dann soll dieser Wert im Array keys[] 
      // auf FALSE gesetzt werden
      return 0; // und zurück.
    }

    case WM_SIZE: // Die Fenstergröße wurde geändert
    {
      ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); 
      // LoWord ist die Breite, HiWord die Höhe, 
      // ReSizeGLScene() verändert dann die 
      // Größe des OpenGL-Fensters
      return 0; // und zurück
    }
  }

  return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

  MSG msg;
  BOOL done=FALSE;

  if (MessageBox(NULL,&quot;Soll im Vollbildmodus gestartet werden?&quot;,&quot;Vollbilmodus gewünscht?&quot;,MB_YESNO|MB_ICONQUESTION)==IDNO)
  {
    fullscreen=FALSE; // Falls nein gedrückt wurde, 
                      // wird fullscreen false gesetzt
  }

  if (!CreateGLWindow(&quot;Opengl Tutorial 1 - Nur ein schwarzes Fenster - www.codeworx.org&quot;,640,480,16,fullscreen))
  {
    return 0; // Falls ein Fehler auftrat, beenden
  }

  while(!done) // Solange done nicht TRUE ist:
  {

    if (PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE)) 
    // Sind Nachrichten vorhanden
    {

    if (msg.message==WM_QUIT) 
    // Liegt eine Nachricht zum beenden vpr?
    {
      done=TRUE; // Wenn dem so ist, wird done 
                 // true und das Programm beendet
    }

    else 
    // Wenn nicht werden die anderen Nachrichten ausgewertet

    {
      TranslateMessage(&amp;msg); // Umformen der Nachricht
      DispatchMessage(&amp;msg); 
    }
  }

  else // Falls keine Nachrichten bereit liegen
  {

    if (active) // Programm aktiv?
    {
      if (keys[VK_ESCAPE]) // Wurde ESC gedrückt?
      {
        done=TRUE; // Wenn ESC gedrückt wurde, beenden
      }

      else // ESC wurde nicht gedrückt
      {

        DrawGLScene(); // Die Szene ausgeben
        SwapBuffers(hDC); // Die Puffer werden getauscht
      }
    }

    if (keys[VK_F1]) // Wird F1 gedrückt?
    {
      keys[VK_F1]=FALSE; 
      // Es darf nicht gewartet werden bis F1 losgelassen wird,
      // ansonsten könnte das Bild mehrmals hin und herschalten

      KillGLWindow(); // Das aktuelle Fenster wird gelöscht
      fullscreen=!fullscreen; 
      // fullscreen erhält seinen entgegengesetzten Wert
      // (bei FALSE TRUE, und bei TRUE FALSE.)

      if (!CreateGLWindow(&quot;Lektion 1&quot;,640,480,16,fullscreen))    
      {
        return 0; // Zurück falls ein Fehler auftrat
      }
    }
  }
}

  KillGLWindow(); // Das Fenster löschen.
  return (msg.wParam); // Das Programm verlassen.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/174341/visual-c-2k5</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 12:03:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174341.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Feb 2007 18:57:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 18:57:25 GMT]]></title><description><![CDATA[<p>Ich hab mir heute C++ Visual 2k5 von Microsoft gehollt</p>
<p>Als ich dann endlich Das OpenGL Tut machen wolte sagte er mir das mir die windows.h fehlt is das nen scherz oder was?</p>
<p>Es kann doch nit sein das die windows.h fehlt das is doch glaube bei win irgentwo dabei zumindest hatte Dev-Cpp keine Probleme mit windows.h...</p>
<p>Das is total geil irgentwie:<br />
Dev-Cpp findet Glaux.lib nicht...(doch schon aber als ich es geladet hatte gings au net...)<br />
Und Visual findet windows.h nicht...</p>
<p>Code vom Tutorial:</p>
<pre><code>// Tutorial 1 &quot;Nur ein schwarzes Fenster&quot;
// gedownloaded von www.codeworx.org
// Version 1.0, Hans-Jakob Schwer, 7.11.2001
// Original von Jeff Molofee, neu kommentiert und übersetzt aus dem Englischen

#include &lt;windows.h&gt;  // diverse Windowsfunktionen
#include &lt;gl\glu.h&gt;   // Damit kann Glu32 genutzt werden.
#include &lt;gl\gl.h&gt;    // Damit kann OpenGL32 genutzt werden.
#include &lt;gl\glaux.h&gt; // Und das Gleiche nochmal für Glaux  

HGLRC hRC=NULL;         // Der OpenGL Rendering Context
HDC hDC=NULL;           // Geschützter GDI Device Context
HWND hWnd=NULL;         // Verweist später auf den Windows Handle
HINSTANCE hInstance;	// Die Instanz der Anwendung

bool keys[256]; // Vektor (Array) der den Status 
                // einzelner Tasten enthält    
                // (gedrückt/nicht gedrückt)

bool active=TRUE;  // Wenn active FALSE ist, wurde das 
                   // Fenster vom Benutzer minimiert.

bool fullscreen=TRUE; // Läuft das Programm im Vollbildmodus 
                      // oder nicht?

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);    
// WndProc wird deklariert

GLvoid ReSizeGLScene(GLsizei width, GLsizei height) 
// Initialisierung des OpenGL-Fensters
{
  if (height==0)
  {      
    height=1;    
  }

  // height darf nicht 0 sein, damit es im späteren 
  // Programmablauf nicht zu einer Division durch 0 kommt.

  glViewport(0, 0, width, height);
  // Hier wird der Mittelpunkt auf den die Perspektive zuläuft 
  // zurückgesetzt.

  glMatrixMode(GL_PROJECTION); 
  // Hier wird die Projektionsmatrix festgelegt

  glLoadIdentity(); 
  // und angepasst

  gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f); 
  // Hier wird die das Verhältnis der Höhe zur Breite übergeben
  // und der Verzerrungswinkel von 45 Grad übergeben

  glMatrixMode(GL_MODELVIEW); 
  // Hier wird die sogenannte modelview-Matrix festgelegt

  glLoadIdentity(); 
  // und angepasst.
}

int InitGL(GLvoid)
{
  glShadeModel(GL_SMOOTH); 
  // Das Smooth Shading wird aktiviert, das 
  // sehr schöne Farbübergänge auf Körpern ermöglicht.

  glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 
  // In diesem Falle ein schwarzer Hintergrund

  glClearDepth(1.0f); 
  // depht buffer zurückgesetzt

  glEnable(GL_DEPTH_TEST); 
  // Aktivierung des depht Tests (dazu später mehr.)

  glDepthFunc(GL_LEQUAL); 
  // Der Typ des Depht Tests wird festgelegt

  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 
  // Perspektive wird festgelegt

  return TRUE; // Initialisierung scheint geklappt zu haben!
}

int DrawGLScene(GLvoid) 
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
  // Die vorherige Szene wird vom Bildschirm gelöscht, 
  // damit die neuen nicht einfach über die alten    
  // Objekte gezeichnet werden

  glLoadIdentity(); 
  // modelview-Matrix wird wieder einmal zurückgesetzt

  return TRUE; // Alles hat geklappt
}

GLvoid KillGLWindow(GLvoid)
{

  if (fullscreen) // Kontrolle auf Vollbildmodus
  {
    ChangeDisplaySettings(NULL,0); // Zurück zum Desktop
    ShowCursor(TRUE); // Der abgeschaltete Mauszeiger 
                      // wird wieder angezeigt (Nicht 
                      // vergessen ;)
  }

  if (hRC) // Rendering Context (RC) vorhanden?
  {
    if (!wglMakeCurrent(NULL,NULL)) // Kann der DC und RC überhaupt 
                                    // gelöscht werden?
    {
      MessageBox(NULL,&quot;Entfernen des DC und RC fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK | MB_ICONINFORMATION);
    }

    if (!wglDeleteContext(hRC)) // Kann der RC gelöscht werden?
    {
      MessageBox(NULL,&quot;Entfernen des RC fehlgeschlagen.&quot;,&quot;Fehler...&quot;,MB_OK | MB_ICONINFORMATION);
    }
      hRC=NULL; // Der RC wird NULL gesetzt, also entfernt
    }

   if (hDC &amp;&amp; !ReleaseDC(hWnd,hDC)) 
   // Kann der Device Context (DC) freigegeben werden?
   {
     MessageBox(NULL,&quot;Freigabe des Device Context fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK | MB_ICONINFORMATION);

     hDC=NULL; // Der DC wird entfernt
   }

   if (hWnd &amp;&amp; !DestroyWindow(hWnd)) 
   // Kann das Programmfenster geschlossen werden?
   {
     MessageBox(NULL,&quot;Konnte hWnd nicht löschen.&quot;,&quot;SHUTDOWN ERROR&quot;,MB_OK | MB_ICONINFORMATION);

     hWnd=NULL; // Setze den hWnd auf NULL
   }

   if (!UnregisterClass(&quot;OpenGL&quot;,hInstance)) 
   // Kann die Registrierung rückgängig gemacht werden?

   {
     MessageBox(NULL,&quot;Konnte Klasse nicht entfernen.&quot;,&quot;SHUTDOWN ERROR&quot;,MB_OK | MB_ICONINFORMATION);

     hInstance=NULL; // Setze hInstance auf NULL
   }
}

BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{

  GLuint PixelFormat; // Speichert das Pixelformat

  WNDCLASS wc; // wc wird eine Instanz der Fensterklasse

  DWORD dwExStyle; // weitere Informationen
  DWORD dwStyle; // Fensterinformationen

  RECT WindowRect; 
  // Speicher für aktuelle Auflösung

  WindowRect.left=(long)0; 
  // Die linke Seite des Rechtecks wirtd auf 0 gesetzt

  WindowRect.right=(long)width; 
  // Hier wird die gewünschte Breite des Fensters gespeichert

  WindowRect.top=(long)0; 
  // Die obere Seite wird auch auf 0 gesetzt

  WindowRect.bottom=(long)height; 
  // Und hier wird die Höhe abgelegt

  fullscreen=fullscreenflag; 
  // Hier wird fullscreen 
  // auf den Wert von fullscreenflag 
  // gesetzt, welches ja übergeben wurde

  hInstance = GetModuleHandle(NULL); 
  // Die Instanz des Programmes bekommt ein 
  // Handle zugeordnet

  wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; 
  // Bei Veränderungen in der Höhe und/oder Breite, 
  // soll ne gezeichnet werden

  wc.lpfnWndProc = (WNDPROC) WndProc; 
  // WndProc behandelt die auftretenden Nachrichten

  wc.cbClsExtra = 0; // Wird nicht benötigt
  wc.cbWndExtra = 0; // und das auch nicht
  wc.hInstance = hInstance; // Die Instanz wird festgelegt
  wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); 
  // Lädt das Standardsymbol
  wc.hCursor = LoadCursor(NULL, IDC_ARROW); 
  // Lädt einen Cursor
  wc.hbrBackground = NULL; 
  // Es soll kein bestimmter Hintergrund angezeigt werden
  wc.lpszMenuName = NULL; // Auch ein Menü wird nicht benötigt.
  wc.lpszClassName = &quot;OpenGL&quot;; // OpenGL wird der Name der Klasse

  if (!RegisterClass(&amp;wc)) // Versuch die Klasse zu registrieren
  {
    MessageBox(NULL,&quot;Konnte die Fensterklasse nicht registrieren.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE zurückgeben und beenden
  }

  if (fullscreen) // Soll im Vollbildmodus gestartet werden
  {

    DEVMODE dmScreenSettings; 
    // Instanz von DEVMODE wird erzeugt

    memset(&amp;dmScreenSettings,0,sizeof(dmScreenSettings)); 
    // Diese wird geleert

    dmScreenSettings.dmSize=sizeof(dmScreenSettings); 
    // dmsize soll genauso groß wie die dmScreenSettings sein

    dmScreenSettings.dmPelsWidth = width; 
    // Die drei Werte (height, width und bits) 
    // wurden der Prozedur übergeben und werden 
    // nun in dmScreenSettings gespeichert

    dmScreenSettings.dmPelsHeight = height;
    dmScreenSettings.dmBitsPerPel = bits; 
    dmScreenSettings.dmFields=DM_BITSPERPEL|
    DM_PELSWIDTH|DM_PELSHEIGHT; 
    // Hier werden die drei Werte in einem Ausdruck gespeichert

    if (ChangeDisplaySettings(&amp;dmScreenSettings,CDS_FULLSCREEN)
        !=DISP_CHANGE_SUCCESSFUL)    
    {

    // CDS_FULLSCREEN blendet zusätzlich die Startleiste aus

      if (MessageBox(NULL,&quot;Der gewünschte Vollbildmodus wird nicht unterstützt, soll stattdessen im Fenstermodus ausgegeben werden?&quot;,&quot;OpenGL&quot;,MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
      {
        fullscreen=FALSE; 
        // Der Benutzer möchte im Fenster weitermachen, 
        // dazu wird fullscreen auf FALSE gesetzt
      }

      else
      {
        return FALSE;
        // Falls der Benutzer das Programm aus gegebenen 
        // Anlass beenden will, wird FALSE zurückgegeben.
      }
    }
  }

  if (fullscreen) 
  // Konnte in den Vollbildmodus geschaltet werden? 
  // (Wenn nicht, wird ja im Fenster weitergemacht!)
  {
    dwExStyle=WS_EX_APPWINDOW; // Fenstereigenschaften
    dwStyle=WS_POPUP; // -&quot;-
    ShowCursor(FALSE); // Der Mauszeiger wird nicht angezeigt
  }

  else
  {

    dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; 
    // Das Fenster soll zusätzlich einen 3D Rahmen bekommen

    dwStyle=WS_OVERLAPPEDWINDOW; 
    // Ein typisches Windowsfenster mit 
    // Minimieren, Maximieren, etc
  }

  AdjustWindowRectEx(&amp;WindowRect, dwStyle, FALSE, dwExStyle); 
  // Fenster wird angepasst

  if (!(hWnd=CreateWindowEx( dwExStyle, 
  // Die erweiterten Eigenschaften des    Fensters
  &quot;OpenGL&quot;, // Der Name der Klasse
  title, // Der Titel des Fensters
  WS_CLIPSIBLINGS | // Wird von OpenGL benötigt
  WS_CLIPCHILDREN | // Wird auch von OpenGL benötigt
  dwStyle, // auch Eigenschaften des Fensters
  0, 0, // Die Position des zu erstellenden Fensters
  WindowRect.right-WindowRect.left, 
  // Hier werden die ermittelten Werte für die Breite eingesetzt
  WindowRect.bottom-WindowRect.top, // und hier für die Länge
  NULL, // Es soll kein übergordnetes Fendster erstellt werden
  NULL, // kein Menü
  hInstance, // Die Instanz wird übergeben
  NULL))) // Wird nicht benötigt

  {
    KillGLWindow(); // Grafikeinstellungen zurücksetzen
    MessageBox(NULL,&quot;Fenster konnte nicht erstellt werden.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; 
  }

  static PIXELFORMATDESCRIPTOR pfd= 
  // pdf ist jetzt ein PIXELFORMATDESCRIPTOR
  {
    sizeof(PIXELFORMATDESCRIPTOR), 
    // Die größe muss natürlich stimmen
    1, // Versionsnummer
    PFD_DRAW_TO_WINDOW | 
    // Das Format muss in Fenster sichtbar sein können
    PFD_SUPPORT_OPENGL | 
    // OpenGL muss unterstützt werden
    PFD_DOUBLEBUFFER, 
    // Double Buffering muss unterstützt werden
    PFD_TYPE_RGBA, 
    // Das RGBA (Rot,Grün,Blau,Alpha(Transparenz)) 
    // muss unterstützt werden
    bits, 
    // Die Farbtiefe, die schon 
    // übergeben wurde, wird hier benötigt
    0, 0, 0, 0, 0, 0, // wird nicht benötigt
    0, // kein Alpha Buffer
    0, // Shift Bit ignoriert
    0, // kein Accumulation Buffer
    0, 0, 0, 0, // nicht benötigt
    16, // 16Bit Z-Buffer (Depth Buffer)
    0, // kein Stencil Buffer
    0, // kein Auxiliary Buffer
    PFD_MAIN_PLANE, 
    // Die Hauptebene auf die später gezeichnet wird
    0, // unwichtig
    0, 0, 0 // keine Ebenenmasken benötigt
  };

 if (!(hDC=GetDC(hWnd))) // Versuch, den DC zu bekommen
   {
     KillGLWindow(); 
     // Alles rückgängig machen
     MessageBox(NULL,&quot;Konnte keinen DC erstellen.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
     return FALSE; // FALSE zurückgeben, beenden
   }

  if (!(PixelFormat=ChoosePixelFormat(hDC,&amp;pfd))) 
  // Kann Windows ein passendes finden? 
  { 
	// Falls keins gefunden werden kann:
    KillGLWindow(); // Alles zurücksetzen
    MessageBox(NULL,&quot;Konnte kein passendes Pixelformat finden.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE zurück und Ende.
  }

  if(!SetPixelFormat(hDC,PixelFormat,&amp;pfd))
  // Kann das Pixelformat gesetzt werden?
    {
      KillGLWindow(); // Leider nicht, Fehlerpopup und raus
      MessageBox(NULL,&quot;Konnte Pixelformat nicht setzen.&quot;,&quot;ERROR&quot;,MB_OK|MB_ICONEXCLAMATION);
      return FALSE; // FALSE zurück und raus
   }

  if (!(hRC=wglCreateContext(hDC))) // Versuch den RC zu bekommen
    {
      KillGLWindow(); // Alles rückgängig machen
      MessageBox(NULL,&quot;Konnte keinen Rendering Context bekommen.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
      return FALSE;
    }

  if(!wglMakeCurrent(hDC,hRC)) // Versuch den RC zu aktivieren
  {
    KillGLWindow(); // hat nicht geklappt, also alles zurück
    MessageBox(NULL,&quot;Konnte den Rendering Context nmicht aktivieren.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE;
  }

  ShowWindow(hWnd,SW_SHOW); // Fenster anzeigen
  SetForegroundWindow(hWnd); // Priorität des Programms wird erhöht
  SetFocus(hWnd); // Tastatureingaben werden 
                  // jetzt an das Programm geleitet

  ReSizeGLScene(width, height); // Die Perspektive wird aktiviert

  if (!InitGL()) // Initialisiere das OpenGL Fenster
  {
    KillGLWindow(); // Falls das nicht geklappt 
                    // haben sollte alles rückgängig machen

    MessageBox(NULL,&quot;Initialisierung fehlgeschlagen.&quot;,&quot;Fehler&quot;,MB_OK|MB_ICONEXCLAMATION);
    return FALSE; // FALSE wird zurückgegeben
  }

  return TRUE; // Alles hat geklappt!!!

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

  switch (uMsg) // Sind Nachrichten in der Nachrichtenschleife?
  {

    case WM_ACTIVATE: // Ist das Programm aktiv?
    {
      if (!HIWORD(wParam)) // Ist das Programm nicht minimiert?
      {
        active=TRUE; // active wird TRUE
      }

     else
     {
       active=FALSE; // Programm ist minimiert
     }   

     return 0; // Rückgabe: 0
   }

    case WM_SYSCOMMAND: // Ist ein Systemkommando 
                        // (wie z.B. &quot;Bildschirmschoner 
                        // soll gestartet werden&quot;) vorhanden?
    {
      switch (wParam) // wParam würde diesen Befehl enthalten
      {
        case SC_SCREENSAVE: 
        // Versucht Windows den Bildschirmschoner zu starten

        case SC_MONITORPOWER: 
        // Soll der Monitor in den Stromsparmodus gehen?

        return 0; 
        // Beide Fälle werden durch die Rückgabe von 0 verhindert
      }
      break; // Das wars.
    }

    case WM_CLOSE: // Ist eine WM_CLOSE Nachricht vorhanden?
    {
      PostQuitMessage(0); 
      // Die Nachricht zum Beenden wird &quot;gepostet&quot;

      return 0; // und zurück.
    }

    case WM_KEYDOWN: // Drückt der Benutzer eine Taste???
    {
      keys[wParam] = TRUE; 
      // Der Wert im Array keys[] der dem Code 
      // der Taste entspricht, wird true gesetzt

      return 0; // und zurück...
    }

    case WM_KEYUP: // Wurde eine Taste losgelassen?
    {
      keys[wParam] = FALSE; 
      // Wen ja, dann soll dieser Wert im Array keys[] 
      // auf FALSE gesetzt werden
      return 0; // und zurück.
    }

    case WM_SIZE: // Die Fenstergröße wurde geändert
    {
      ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); 
      // LoWord ist die Breite, HiWord die Höhe, 
      // ReSizeGLScene() verändert dann die 
      // Größe des OpenGL-Fensters
      return 0; // und zurück
    }
  }

  return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

  MSG msg;
  BOOL done=FALSE;

  if (MessageBox(NULL,&quot;Soll im Vollbildmodus gestartet werden?&quot;,&quot;Vollbilmodus gewünscht?&quot;,MB_YESNO|MB_ICONQUESTION)==IDNO)
  {
    fullscreen=FALSE; // Falls nein gedrückt wurde, 
                      // wird fullscreen false gesetzt
  }

  if (!CreateGLWindow(&quot;Opengl Tutorial 1 - Nur ein schwarzes Fenster - www.codeworx.org&quot;,640,480,16,fullscreen))
  {
    return 0; // Falls ein Fehler auftrat, beenden
  }

  while(!done) // Solange done nicht TRUE ist:
  {

    if (PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE)) 
    // Sind Nachrichten vorhanden
    {

    if (msg.message==WM_QUIT) 
    // Liegt eine Nachricht zum beenden vpr?
    {
      done=TRUE; // Wenn dem so ist, wird done 
                 // true und das Programm beendet
    }

    else 
    // Wenn nicht werden die anderen Nachrichten ausgewertet

    {
      TranslateMessage(&amp;msg); // Umformen der Nachricht
      DispatchMessage(&amp;msg); 
    }
  }

  else // Falls keine Nachrichten bereit liegen
  {

    if (active) // Programm aktiv?
    {
      if (keys[VK_ESCAPE]) // Wurde ESC gedrückt?
      {
        done=TRUE; // Wenn ESC gedrückt wurde, beenden
      }

      else // ESC wurde nicht gedrückt
      {

        DrawGLScene(); // Die Szene ausgeben
        SwapBuffers(hDC); // Die Puffer werden getauscht
      }
    }

    if (keys[VK_F1]) // Wird F1 gedrückt?
    {
      keys[VK_F1]=FALSE; 
      // Es darf nicht gewartet werden bis F1 losgelassen wird,
      // ansonsten könnte das Bild mehrmals hin und herschalten

      KillGLWindow(); // Das aktuelle Fenster wird gelöscht
      fullscreen=!fullscreen; 
      // fullscreen erhält seinen entgegengesetzten Wert
      // (bei FALSE TRUE, und bei TRUE FALSE.)

      if (!CreateGLWindow(&quot;Lektion 1&quot;,640,480,16,fullscreen))    
      {
        return 0; // Zurück falls ein Fehler auftrat
      }
    }
  }
}

  KillGLWindow(); // Das Fenster löschen.
  return (msg.wParam); // Das Programm verlassen.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1235383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235383</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Sun, 25 Feb 2007 18:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 18:58:55 GMT]]></title><description><![CDATA[<p>Das liegt ganz einfach daran, dass bei der Express Edition kein Windows SDK dabei ist, kann man aber natürlich installieren. (-&gt; Compiler FAQ)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235390</guid><dc:creator><![CDATA[Kenner, der]]></dc:creator><pubDate>Sun, 25 Feb 2007 18:58:55 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 18:59:18 GMT]]></title><description><![CDATA[<p>ich nehme an, du hast dir die kostenlose Express gezogen?</p>
<p>Dann schaue er hier:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235392</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Sun, 25 Feb 2007 18:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 19:06:43 GMT]]></title><description><![CDATA[<p>muss ich die riesen .ISO laden? O.o</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235404</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Sun, 25 Feb 2007 19:06:43 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 19:11:12 GMT]]></title><description><![CDATA[<p>ja. Aber da ist alles drin, was man für die Windows-Programmierung benötigt. Also selbst wenn du Scanner, Digitalkameras usw. ansprechen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235412</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Feb 2007 19:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 19:14:17 GMT]]></title><description><![CDATA[<p>bei MSDN haben sie mich damals (ja ich hatte das Problem auch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) auf das PlattformSDK für Win2k verwiesen, funktioniert auch problemfrei (war auch riesig aber kein ISO)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235415</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Sun, 25 Feb 2007 19:14:17 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 19:31:06 GMT]]></title><description><![CDATA[<p>benny[...] schrieb:</p>
<blockquote>
<p>Ich hab mir heute C++ Visual 2k5 von Microsoft gehollt<br />
Als ich dann endlich Das OpenGL Tut machen wolte sagte er mir das mir die windows.h fehlt is das nen scherz oder was?</p>
</blockquote>
<p>Mensch, wie kann man so eine Frage in einem <strong>C++</strong> Subforum Stellen, wenns <strong>Compiler</strong> extra gibt...<br />
Kann das mal einer verschieben?</p>
<p>greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235428</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 25 Feb 2007 19:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 19:41:51 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>benny[...] schrieb:</p>
<blockquote>
<p>Ich hab mir heute C++ Visual 2k5 von Microsoft gehollt<br />
Als ich dann endlich Das OpenGL Tut machen wolte sagte er mir das mir die windows.h fehlt is das nen scherz oder was?</p>
</blockquote>
<p>Mensch, wie kann man so eine Frage in einem <strong>C++</strong> Subforum Stellen, wenns <strong>Compiler</strong> extra gibt...<br />
Kann das mal einer verschieben?</p>
<p>greetz, Swordfish</p>
</blockquote>
<p>Und was hats mitm Compiler zu tun, wenn die Libs fehlen? ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235441</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Sun, 25 Feb 2007 19:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 20:02:56 GMT]]></title><description><![CDATA[<p>Womit kann ich die .iso öffnen oder muss ich die irgentwo reinlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235450</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Sun, 25 Feb 2007 20:02:56 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 20:28:18 GMT]]></title><description><![CDATA[<p>Entweder auf ne CD brennen (alle CD-Brennprogramme verarbeiten ISO-Images) oder eine Software benutzen, die ISO-Images als virtuelle CD-ROM dem System darstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235465</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Feb 2007 20:28:18 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Sun, 25 Feb 2007 23:13:33 GMT]]></title><description><![CDATA[<p>z.b. IsoBuster ist sone Software <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235542</guid><dc:creator><![CDATA[muajah]]></dc:creator><pubDate>Sun, 25 Feb 2007 23:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 15:17:42 GMT]]></title><description><![CDATA[<p>Ich habs jetz aufne CD geschmissen als ich die CD gestartet habe sagt er das ich nur Microsoft MSDN 2k5 Express Edition und SQL Server Edition ich installier jetz MSDN hoffe das is das richtige...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235825</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Mon, 26 Feb 2007 15:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 17:12:50 GMT]]></title><description><![CDATA[<p>Mist es funktioniert nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235903</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Mon, 26 Feb 2007 17:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 17:18:43 GMT]]></title><description><![CDATA[<p>Schade.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235911</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Mon, 26 Feb 2007 17:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 18:27:44 GMT]]></title><description><![CDATA[<p>benny111120032 schrieb:</p>
<blockquote>
<p>Ich habs jetz aufne CD geschmissen als ich die CD gestartet habe sagt er <strong>das ich nur Microsoft MSDN 2k5 Express Edition und SQL Server Edition</strong> ich installier jetz MSDN hoffe das is das richtige...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> WAS SOLL DAS HEISSEN???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235937</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 26 Feb 2007 18:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 19:00:46 GMT]]></title><description><![CDATA[<p>Ich habs gebrannt und gestartet also hat sich selbst gestartet dann kam das:</p>
<p><a href="http://ihostupost.com/files/232/BE001.png" rel="nofollow">http://ihostupost.com/files/232/BE001.png</a><br />
<a href="http://ihostupost.com/files/232/BE002.png" rel="nofollow">http://ihostupost.com/files/232/BE002.png</a></p>
<p>Natürlich fehlt jetz das Microsoft MSDN 2k5 Express Edition is ja auch instaliert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235969</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Mon, 26 Feb 2007 19:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Mon, 26 Feb 2007 19:25:34 GMT]]></title><description><![CDATA[<p>Und, wo ist das Problem?</p>
<p><a href="http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx" rel="nofollow">http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235982</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235982</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 26 Feb 2007 19:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Tue, 27 Feb 2007 10:57:24 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-1.html" rel="nofollow">MFC (Visual C++)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236142</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 27 Feb 2007 10:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ 2k5 on Tue, 27 Feb 2007 18:40:27 GMT]]></title><description><![CDATA[<p>Ich habe keine Libs in meinem VS ordner/<br />
Ich hab alle libs von Dev++ und von GTK hinzugefügt aber da war die lib nicht drin...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236372</guid><dc:creator><![CDATA[benny111120032]]></dc:creator><pubDate>Tue, 27 Feb 2007 18:40:27 GMT</pubDate></item></channel></rss>