Seite 1 von 1

DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 20.05.2012, 15:28
von newby
ich habe folgendes problem:
ich hab mir http://www.directxtutorial.com/Tutorial ... aspx#still
durchgelesen und ausprobiert, aber es erscheinen nach dem erstellen z.B. folgende (fehler) meldungen:
"Tutorial05.exe": "C:\Windows\SysWOW64\igd10umd32.dll" geladen, Cannot find or open the PDB file
"Tutorial05.exe": "C:\Windows\SysWOW64\D3D11SDKLayers.dll" geladen, Cannot find or open the PDB file
"Tutorial05.exe": "C:\Windows\SysWOW64\D3DCompiler_42.dll" geladen, Cannot find or open the PDB file
bei dem nächsten tutorialschritt( maximieren des fensters) bevor das fenster voll gefüllt ist ein weiterer fehler( zugriffsverletzung auf 0*....)
und der letzte fehler betrifft die samples aus der vorinstallierten directX dokumentation:
er erkennt D3DCOMPILE_ENABLE_STRICTNESS und D3DCOMPILE_DEBUG nicht . solange ich nicht den folgen codeblock:

DWORD dwShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS;
#if defined( DEBUG ) || defined( _DEBUG )
// Set the D3DCOMPILE_DEBUG flag to embed debug information in the shaders.
// Setting this flag improves the shader debugging experience, but still allows
// the shaders to be optimized and to run exactly the way they will run in
// the release configuration of this program.
dwShaderFlags |= D3DCOMPILE_DEBUG;

entferne und den parameter in

hr = D3DX11CompileFromFile( szFileName, NULL, NULL, szEntryPoint, szShaderModel,
0, //(eigentlich)dwShaderFlags
0, NULL, ppBlobOut, &pErrorBlob, NULL );

von dwShaderFlags auf 0 setze, spukt er einen fehler aus

könnte jemand mir bitte die sachen erläutern?
ich hab ehrlich gesagt (noch) fast keine ahnung in sachen DirectX, deshalb würde ich mich über eine antwort freuen
mfg
newby

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 20.05.2012, 16:03
von eXile
newby hat geschrieben:"Tutorial05.exe": "C:\Windows\SysWOW64\igd10umd32.dll" geladen, Cannot find or open the PDB file
"Tutorial05.exe": "C:\Windows\SysWOW64\D3D11SDKLayers.dll" geladen, Cannot find or open the PDB file
"Tutorial05.exe": "C:\Windows\SysWOW64\D3DCompiler_42.dll" geladen, Cannot find or open the PDB file
Das sind keine Fehler im eigentlichen Sinne. Es bedeutet, dass die entsprechenden DLLs ohne Debug-Symbole gebaut wurden, was hierbei vollkommen normal ist; es sind nämlich die DLLs von Direct3D und deines Intel-Benutzermodus-Graphiktreibers. Das kannst du erst einmal ignorieren, wenn du jetzt nur das Beispiel zum Laufen bringen willst. (Ansonsten kannst du auch das Laden von Symbolen für einige DLLs einschalten; ich glaube aber, das führt erstmal zu weit).
newby hat geschrieben:bei dem nächsten tutorialschritt( maximieren des fensters) bevor das fenster voll gefüllt ist ein weiterer fehler( zugriffsverletzung auf 0*....)
Das ist in der Tat ein Fehler; was aber merkwürdig ist, weil der dort gezeigte Code bei mir vollständig funktioniert.
newby hat geschrieben:und der letzte fehler betrifft die samples aus der vorinstallierten directX dokumentation:
er erkennt D3DCOMPILE_ENABLE_STRICTNESS und D3DCOMPILE_DEBUG nicht .
Das ist auch merkwürdig. Dort wird normalerweise die DXUT.h eingebunden, welche wiederum die D3Dcompiler.h einbindet, wo diese #defines definiert werden.

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 20.05.2012, 16:47
von newby
"Das ist auch merkwürdig. Dort wird normalerweise die DXUT.h eingebunden, welche wiederum die D3Dcompiler.h einbindet, wo diese #defines definiert werden."
meinst du damit, dassich DXUT.h einbinden musse(wenn ja, dann erklärt es das, weil das nicht im quelltext auftaucht...)

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 20.05.2012, 16:51
von newby
"Unbehandelte Ausnahme bei 0x002517f1 in dada.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000."
--> der genaue fehler beim maximieren-programm

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 20.05.2012, 16:57
von Schrompf
Für die Lesbarkeit: Benutze bitte [quote] Tags für das Zitieren und

Code: Alles auswählen

-Tags für Code. Danke.

Außerdem: Du hast eingangs Log-Ausgaben zitiert. Die lesen sich, wie als ob Du Visual Studio benutzt. Warum benutzt Du dann nicht den Debugger, um den Absturz zu finden? Wenn Du aus Visual Studio heraus die Anwendung startest und die "Debug"-Buildkonfig benutzt, müsste er Dir auf die Zeile genau sagen, wo es abstürzt und woran das liegt. 

Dein zitierter Text besagt: "Zugriffsverletzung beim Lesen an Position 0x00000000". Das heißt, dass Du von einem Null-Pointer zu lesen versuchst. Im Kontext eines DirectX-Neulings liegt das meist daran, dass Du eine Resource erzeugen wolltest und das schief gegangen ist. Demzufolge ist der Zeiger auf die Resource immernoch null, und Dein erster Versuch danach, diese Resource zu verwenden, führt zu eben jenem Crash. Gehe mit einem Debugger Schritt für Schritt durch Dein Programm, um den genauen Ablauf zu sehen, überprüfe alle Rückgabewerte, die Du von DirectX-Aufrufen bekommst, und lies die Dokumentation zu der Funktion, die scheitert.

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 25.05.2012, 23:57
von CrystalCoder
Die Seite von der du das Tutorial hast bietet wie ich auf den ersten Blick sehe nicht mehr, als das was es in unmengen auch frei im Internet zu finden gibt.
Ich würde jedenfalls kein Geld für die Inhalte ausgeben, die dort angeboten werden.

DX Tutorials gibts in Massen und gratis (um nur ein paar zu nennen):
http://www.toymaker.info/
http://www.rastertek.com/tutindex.html
http://takinginitiative.net/directx10-tutorials/
http://msdn.microsoft.com/en-us/library/ff729717

Soll nicht heißen, dass ich garkein Geld ausgeben würde, sondern wenn, dann würd ich es in ein gutes Buch investieren.

Re: DirectX "zugriffsverletzung,cannot find or open file..."

Verfasst: 26.05.2012, 00:08
von dot
Schrompf hat geschrieben:...
Und verwend die Direct3D Debug Runtime und schau dir an was sie dir zu sagen hat...