Seite 1 von 1

D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 02.05.2013, 14:00
von sirnoname
Hallo,

hier mal eine generelle DX8 Frage. Geht um das Verständnis im OS.
Ich wollte die Funktion D3DXCreateTextureFromResourceEx (DirectX8!) in mein Programm so einbinden das es von mir geladen wird , also mit Loadlibrary und GetProcAddress. Die Funktion befindet in sich in winxp in der Datei D3D8d.dll. Das ist quasi identisch mit d3dx9_xx.dll wo derselbe Befehl dür DX9 exportiert ist.

Und nun wird es komisch in Win7. Die generelle Hauptdatei D3D8.dll befindet sich nur noch als Link im System32 Verzeichnis. Real ist sie unter:
C:\Windows\winsxs\x86_microsoft-windows-directx-direct3d8_31bf3856ad364e35_6.1.7600.16385_none_c222c27ec21ab213

Von der d3d8d.dll ist nichts mehr zu sehen doch funktioniert beim automatischen Laden aus der Verlinkung der lib der Befehl an sich ohne Probleme.
Die Suche mit dem Dependency Walker war erfolglos. Ich kann eine Exe mit (nur) dieser Funktion von oben öffnen, diese hat jedoch keine Bindung zu d3d8.dll oder d3d8d.dll :?
Es kann aber in D3D8 nicht statisches Linken gewesen sein, da die d3d8d.dll ja früher existiert hat.

Wo ist diese Funktion nun auf meiner HDD?

Grüße,
Martin

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 07.05.2013, 12:57
von zfxacc32
Hmm, bei mir ist eine ~1MB d3d8.dll in C:\Windows\SysWOW64.

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 07.05.2013, 16:56
von Krishty
Er sucht nach d3d8d.dll. Also vier ds statt drei.

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 13:25
von sirnoname
Welche Datei ist mir eigentlich egal, nur will ich wissen wo die obige Funktion nun technisch steckt :(
Ich suche übrigends immer noch. Irgendwo muss die Funktion versteckt sein.
Als Beispiel habe ich die obige Funktion sammt lib in eine DLL gesteckt und die Importe geprüft. Keine d3d8(d).dll wird dort angezeigt.
Nun würde ich meinen das es in diesem Beispiel dann statisch includiert ist? Nur wozu existierte dann die d3d8d.dll?

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 14:04
von zfxacc32
Guck doch einfach mal mit nem Debugger, wo der Funktionsaufruf hinführt ;) (zB http://www.ollydbg.de/version2.html)

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 15:50
von sirnoname
Sollte da nicht ein Breakpoint reichen gefolgt von Vorwärts Steps?

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 17:15
von dowhilefor
Ich schmeiss mal was unqualifiziertes in die Runde. Könnte es sein das DirectX8(9) nur noch ab Windows7 und höher durch DirectX 10 simuliert wird? Sprich die dlls nur noch "dummies" sind und die eigentlichen Funktionen ganz woanders herkommen, weil sie eh über DirectX10 realisiert werden? Man also gar nicht mehr wie unter XP die "echten" directx8 dlls hat?

Wäre für mich irgendwie logisch. Ich meine mich ganz vage an so eine Umstellung zu erinnern.

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 17:56
von zfxacc32
Dann würde ein Prozess, der Direct3D 8 benutzt und d3d8.dll geladen hat, doch auch d3d10.dll geladen haben... dem ist aber nicht so (Win7 64).

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 18:06
von dowhilefor
Hm, da hast du natürlich auch wieder recht.

Re: D3D8 in Windows 7 ist sehr merkwürdig?

Verfasst: 08.05.2013, 18:33
von Krishty
dowhilefor hat geschrieben:Ich schmeiss mal was unqualifiziertes in die Runde. Könnte es sein das DirectX8(9) nur noch ab Windows7 und höher durch DirectX 10 simuliert wird?
So ungefähr; eine eigene DLL ist aber trotzdem noch vorhanden. Sie verweist dann jedoch auf die eigentliche D3D10-Implementierung in systemeigenen DLLs weiter.
sirnoname hat geschrieben:Welche Datei ist mir eigentlich egal, nur will ich wissen wo die obige Funktion nun technisch steckt :(
Wozu?
Ich suche übrigends immer noch. Irgendwo muss die Funktion versteckt sein.
Ja; im Side-by-Side-Cache. Damit Leute, die nicht wissen, wie man mit DLLs umgeht, nicht direkt darauf zugreifen. Man soll Komponenten nicht manuell laden.