externe Speicherklassen



  • Hallo Leute.

    In meinen C++ Lernbuch steht bei der Quellcodezusammenfassung folgender Ausschnitt:

    extern HWND                 hwnd;         // Handle des Hauptfensters
    extern LPDIRECTDRAW7        lpDD;         // DirectDraw Hauptobjekt
    extern LPDIRECTDRAWSURFACE7 lpDDSPrimary; // FrontBuffer
    extern LPDIRECTDRAWSURFACE7 lpDDSBack;    // BackBuffer
    extern LPDIRECTDRAWSURFACE7 lpDDSZBuffer; // Z-Buffer
    extern LPDIRECT3DDEVICE7    lpD3DDevice;  // Direct3D Device
    
    extern FILE*  Protokoll;
    static HRESULT (*g_fnAppConfirmFn)(DDCAPS*, D3DDEVICEDESC7*) = NULL;
    

    Könnt ihr mir bitte die Funktionen von "extern" und "static" erklären.
    Ich gehe mal davon aus dass ich diesen Teil irgendwie übersehen habe. Danke

    Ciao !



  • ich möcht net trollen aber die paar Zeilen sagen dir das du dein C++ Lehrbuch am besten in die Tonne kickst und unter der Buch Rubrik von c-plusplus.net nach nem ordentlichen ausschau hälst .. !!!



  • Wieso denn das? Was heisst denn extern und static?



  • Sorry, aber das sieht mir eher nach einem DirectX7 Lehrbuch aus! Das wollte mein Vorredner sagen...

    In einem C++ Lehrbuch wird nur ISO C++ und kein spezieller Windows-Kram behandelt... also, kauf dir ein richtiges C++ Einsteigerbuch. Wie heißt denn das Buch aus dem Du das Bsp. hast?

    Hier die zwei Schlüsselwörter zu erklären ist schwachsinn, weil das in jedem Lehrbuch drin steht, und niemand hat bock alles nochmal zu erklären.



  • Es heisst "3D Spieleprogrammierung mit DirectX in C++" von S. Zerbst und tatsächlich basiert es noch auf DX7. Aber es geht mir auch nur darum die Grundfunktionen zu erlernen.



  • Hi,

    auch, wenn ich bei Zerbie im Forum Moderator bin, muss ich dir sagen: Zum C++-Lernen ist das Buch absolut nicht geeignet. Kauf dir ein gutes C++-Buch oder mach Volkards-Onlinetutorial (kostenlos) durch und fang doch gleich im ersten DirectX-Teil an.
    Dann kannst du diese hässlichen globalen Variablen weglassen und gleich alles schön kapseln und auf DirectX 9 umschreiben. 🙂

    ChrisM



  • Hallo,

    extern sagt dir, dass die mit extern deklarierten Bezeichner an einer anderen
    Stelle in deinem Programm bereits definiert sind.

    static sagt dir, dass diese/r Funktion/Bezeichner nur in einem Modul sichtbar
    sind.

    mfg
    v R


Anmelden zum Antworten