fragen zu dlls



  • LIBRARY bla.dll
    EXPORTS
    Direct3DCreate8 = NewDirect3DCreate8

    das steht in ner datei die zu bla.dll gehört
    was bedeutet sie

    interface NewIDirect3D8 : public IDirect3D8
    

    und was ist ein interface ?



  • Direct3DCreate8 = NewDirect3DCreate8

    Bedeutet, dass die DLL eine Funktion NewDirect3DCreate8 exportiert, die extern über den Namen Direct3DCreate8 importiert wird!

    Ein interface ist eine abstrakte Klasse (oder auch Struktur), bei der nur die Memberfunktionen (virtuell), also ihre Schnittstelle offengelegt ist, und auf diese kann von C++ wie von VB oder Delphi oder Java gleichermassen zugegriffen werden.
    D.h. ein Schnittstellenzeiger kann auf bestimmte Schnittstellen per QueryInterface abgefragt werden. Unterstützt das Objekt, welches hinter dem Schnittstellenzeiger verborgen ist, dieses Interface, so gibt die Methode OK zurück und man kann mit der Schnittstelle arbeiten.

    Logischerweise ist das noch nicht alles, aber ausführlich steht es in der MSDN!
    Ich verweise da z.B. auf den VB-Artikel "Understanding Interface-based Programming"



  • das heisst die funktion ersetzt die funktion in einem programm sollte ich die dll mit loadlibrary in ein programm laden ? !

    NewDirect3DCreate8();
    ersetzt
    Direct3DCreate8();


Anmelden zum Antworten