#1 26.04.2006 09:32:07

Mavarik
Member
Registriert: 26.04.2006
Beiträge: 95

Warum werden DLL's mitgeliefert?

Hallo Zusammen!

1.  :doof:

Fange gerade erst an mich in directX einzuarbeiten.

Habe mir das Buch von Martin Pyka gekauft und "fast" durchgelesen....

Zu meiner Frage  smile

Warum werden "immer" die DLL's d3dx9.dll, d3d9.dll und dxerr9.dll
mitgeliefert? Sollten die nicht bei jedem im WindowsSystem32 Verzeichniss liegen?

Bei mir liegt als aktuelle Version übrigens d3dx9_29.dll. Gibt es eine funktion um die aktuellste DLL herauszufinden oder muss die einfach mit Findfirst/next gesucht werder?

Grüsse Frank


Hier wohne ich: www.fliegerei.net/game/Mavarik.kmz
und
3 Zeilen Delphi sagen mehr als 1000 Worte.

Offline

 

#2 26.04.2006 09:55:05

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: Warum werden DLL's mitgeliefert?

Das hat historische Gründe könnte man sagen. Microsoft liefert erst seit relativ kurzer Zeit die dll's selbst mit, vorher gabs für C++ nur die libs und somit war es nötig für Delphi selbst dll's zu basteln die einfach nur die lib calls wrappen.

Ich stelle inzwischen ohnehin nach und nach auf die Microsoft dll's um, aber bis das vollständig erledigt ist gilt es, dass man die mitgelieferten dll's ebenfalls benötigt.

Zitat:

Bei mir liegt als aktuelle Version übrigens d3dx9_29.dll. Gibt es eine funktion um die aktuellste DLL herauszufinden oder muss die einfach mit Findfirst/next gesucht werder?

Welchen Grund sollte man haben die rausfinden zu wollen? Die aktuelle headerversion verwendet derzeit glaube ich die _28 - es ist aber bei jeder neuen DirectX redist Version so, dass immer ALLE dll's mitgeliefert werden, d.h. _24 bis _29 zur Zeit. Kurz gesagt: wenn das aktuelle DirectX installiert ist, dann gibts auch keine Probleme - man muss in keiner einzigen Situation selbst nachschauen welche dll's im Verzeichnis liegen. Es gilt einfach nur zusätzlich, dass man die bei den headers mitgelieferten dll's vorläufig noch braucht.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#3 26.04.2006 11:02:26

Mavarik
Member
Registriert: 26.04.2006
Beiträge: 95

Re: Warum werden DLL's mitgeliefert?

Zitat:

Das hat historische Gründe könnte man sagen. Microsoft liefert erst seit relativ kurzer Zeit die dll's selbst mit, vorher gabs für C++ nur die libs und somit war es nötig für Delphi selbst dll's zu basteln die einfach nur die lib calls wrappen.

Hää... Habe ich irgentwie das system nicht verstanden?

Woher kommen den die DLL's wenn nicht von Microsoft? Ich dachte die wäre immer bei der directX installation dabei?

Zitat:

Ich stelle inzwischen ohnehin nach und nach auf die Microsoft dll's um, aber bis das vollständig erledigt ist gilt es, dass man die mitgelieferten dll's ebenfalls benötigt.

Ach so?!  :? Also als Path kann ich in den Header Dateien nicht einfach c:WindowsSystem32d3d9.dll angeben????


Frank


Hier wohne ich: www.fliegerei.net/game/Mavarik.kmz
und
3 Zeilen Delphi sagen mehr als 1000 Worte.

Offline

 

#4 26.04.2006 16:32:11

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: Warum werden DLL's mitgeliefert?

Zitat:

Ach so?!  Also als Path kann ich in den Header Dateien nicht einfach c:WindowsSystem32d3d9.dll angeben????

Was für einen path? Ich verstehe dein Problem nicht ganz - es gibt wirklich keine einzige Situation in der eine Pfadangabe notwendig wäre.

Zitat:

Woher kommen den die DLL's wenn nicht von Microsoft? Ich dachte die wäre immer bei der directX installation dabei?

Die dll's kommen noch von Ampaze - er hat die headers ursprünglich portiert, daran hab ich nie was geändert - ist auch nicht nötig, denn bei den header updates entferne ich mich ohnehin immer weiter von diesen dlls und verwende nur noch jene von Microsoft (die es, wie bereits erwähnt, erst seit kurzem gibt - daher gab es damals auch keine andere Möglichkeit als eigene dll's zu compilieren).

Kurze Anleitung: die 3 dlls kopierst du am besten bei der Installation von was auch immer du machst ins system32 verzeichnis - damit überschreibst du auch nichts, denn es gibt keine dlls von Microsoft die genau so heissen. Damit ist das Problem gelöst und du brauchst auch nirgends Pfadangaben... und schon garnicht solltest du in den headers was ändern, denn beim nächsten Update kannst du dann wieder von vorne beginnen - gibt wie gesagt absolut keinen Grund dazu, würde mich aber interssieren wie du auf diese Idee kommst, von Martins Buch kann das nicht wirklich kommen.  smile

Also, einfach nur die units einbinden in der uses Klausel und um keine Pfadangaben kümmern, laut Windows Konventionen wird nach dll's zuerst mal dort gesucht wo das executable liegt und ansonsten dort wo Windows die dll's ablegt, also grossteils im system32.

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#5 26.04.2006 17:38:15

Mavarik
Member
Registriert: 26.04.2006
Beiträge: 95

Re: Warum werden DLL's mitgeliefert?

Also die d3dx9.dll aus den Headern hat nix mit der d3dx9_29.dll zu tun?

Dann habe ich eine d3d9.dll vom 31.03.04 1.613.312 bytes
und eine d3d9 im System32 vom 08.04.04 1.689.088 bytes

und noch die debug versionen (Sind doch die mit d3d9d.dll vom
03.02.06 mit 3.080.400 bytes!!!

daher habe ich in der HEaderdatei d3dx9 den dll-sourcefile auf System32 gelegt...  :doof:

Welche Dll's passen jetzt zu deinen Header Dateien?

Frank


Hier wohne ich: www.fliegerei.net/game/Mavarik.kmz
und
3 Zeilen Delphi sagen mehr als 1000 Worte.

Offline

 

#6 26.04.2006 19:46:48

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: Warum werden DLL's mitgeliefert?

Zitat:

Also die d3dx9.dll aus den Headern hat nix mit der d3dx9_29.dll zu tun?

Naja, die beiden dll's machen im Prinzip schon das selbe - aber es haben sich einige Deklarationen geändert für die _24 bis _29, die erst noch in den headers korrigiert werden müssen, daher gilt eben, dass für sehr viele calls in der D3DX9.pas noch immer die alte d3dx9.dll verwendet wird, die noch von Ampaze stammt. Wie gesagt, prinzipiell machen diese dll's sehr wohl das selbe, aber es gibt eben kleine Unterschiede weil es a) von Version zu Version ein paar Änderungen gegeben hat und b) es auch ein paar bugs in den headers gab... insbesondere in diesen Fällen wird jetzt aber schon auf die Microsoft dll's zurück gegriffen.

Zitat:

daher habe ich in der HEaderdatei d3dx9 den dll-sourcefile auf System32 gelegt...

Könntest du mal hier posten was du genau geändert hast? Wie gesagt, prinzipiell sollte man Änderungen an den headers nicht vornehmen - ist eigentlich in keiner Situation notwendig, es seidenn jemand entdeckt einen bug.  big_smile  Aber dann genügt ein kurzes posting oder eine PM, damit ich ein update rauflade.

Zitat:

Welche Dll's passen jetzt zu deinen Header Dateien?

Erstmal natürlich jene die mitgeliefert werden - die kopiert man einfach ins system32 Verzeichnis ODER ins selbe Verzeichnis wie die jeweilige exe, es funktioniert beides.

Darüber hinaus wird inzwischen auch die d3dx9_28.dll verwendet, die wird von Microsoft mit DirectX mitgeliefert... und dann natürlich noch die d3d9.dll und die d3d9d.dll - welche ebenfalls von Microsoft mitgeliefert werden.

Prinzipiell hast du mit den dll's wirklich nichts weiter zu tun, als jene die bei den headers dabei sind entweder ins Programmverzeichnis oder ins system32 zu kopieren - alles was darüber hinaus geht sollte nicht wirklich so sein.  smile

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#7 27.04.2006 06:12:40

Mavarik
Member
Registriert: 26.04.2006
Beiträge: 95

Re: Warum werden DLL's mitgeliefert?

Alles klar, jetzt habe ich es verstanden...

Danke für Deine Hilfe...

Frank


Hier wohne ich: www.fliegerei.net/game/Mavarik.kmz
und
3 Zeilen Delphi sagen mehr als 1000 Worte.

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson