D3D8 in Windows 7 ist sehr merkwürdig?

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
sirnoname
Beiträge: 67
Registriert: 20.06.2010, 11:04

D3D8 in Windows 7 ist sehr merkwürdig?

Beitrag 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
zfxacc32
Beiträge: 27
Registriert: 05.03.2013, 15:24

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

Beitrag von zfxacc32 »

Hmm, bei mir ist eine ~1MB d3d8.dll in C:\Windows\SysWOW64.
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag von Krishty »

Er sucht nach d3d8d.dll. Also vier ds statt drei.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
sirnoname
Beiträge: 67
Registriert: 20.06.2010, 11:04

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

Beitrag 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?
zfxacc32
Beiträge: 27
Registriert: 05.03.2013, 15:24

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

Beitrag von zfxacc32 »

Guck doch einfach mal mit nem Debugger, wo der Funktionsaufruf hinführt ;) (zB http://www.ollydbg.de/version2.html)
Benutzeravatar
sirnoname
Beiträge: 67
Registriert: 20.06.2010, 11:04

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

Beitrag von sirnoname »

Sollte da nicht ein Breakpoint reichen gefolgt von Vorwärts Steps?
Benutzeravatar
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?

Beitrag 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.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
zfxacc32
Beiträge: 27
Registriert: 05.03.2013, 15:24

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

Beitrag 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).
Benutzeravatar
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?

Beitrag von dowhilefor »

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
Benutzeravatar
Krishty
Establishment
Beiträge: 8238
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

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

Beitrag 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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten