fragen zu dlls
-
LIBRARY bla.dll
EXPORTS
Direct3DCreate8 = NewDirect3DCreate8das steht in ner datei die zu bla.dll gehört
was bedeutet sieinterface 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();