D3D8 in Windows 7 ist sehr merkwürdig?
D3D8 in Windows 7 ist sehr merkwürdig?
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
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?
Hmm, bei mir ist eine ~1MB d3d8.dll in C:\Windows\SysWOW64.
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: D3D8 in Windows 7 ist sehr merkwürdig?
Er sucht nach d3d8d.dll. Also vier ds statt drei.
Re: D3D8 in Windows 7 ist sehr merkwürdig?
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?
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?
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?
Sollte da nicht ein Breakpoint reichen gefolgt von Vorwärts Steps?
- dowhilefor
- Moderator
- Beiträge: 173
- Registriert: 27.02.2009, 15:44
- Alter Benutzername: 6SidedDice
- Echter Name: Nico Probst
- Wohnort: Bochum
- Kontaktdaten:
Re: D3D8 in Windows 7 ist sehr merkwürdig?
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.
Wäre für mich irgendwie logisch. Ich meine mich ganz vage an so eine Umstellung zu erinnern.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Re: D3D8 in Windows 7 ist sehr merkwürdig?
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).
- dowhilefor
- Moderator
- Beiträge: 173
- Registriert: 27.02.2009, 15:44
- Alter Benutzername: 6SidedDice
- Echter Name: Nico Probst
- Wohnort: Bochum
- Kontaktdaten:
Re: D3D8 in Windows 7 ist sehr merkwürdig?
Hm, da hast du natürlich auch wieder recht.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
- Krishty
- Establishment
- Beiträge: 8336
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: D3D8 in Windows 7 ist sehr merkwürdig?
So ungefähr; eine eigene DLL ist aber trotzdem noch vorhanden. Sie verweist dann jedoch auf die eigentliche D3D10-Implementierung in systemeigenen DLLs weiter.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?
Wozu?sirnoname hat geschrieben:Welche Datei ist mir eigentlich egal, nur will ich wissen wo die obige Funktion nun technisch steckt :(
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.Ich suche übrigends immer noch. Irgendwo muss die Funktion versteckt sein.