cygwin_exception::open_stackdumpfile Fehlermeldung



  • Hallo,
    ich verfolge ein DirectX11-Tutorial (http://www.directxtutorial.com/LessonList.aspx?listid=11) und erhalte bei Code aus "Lesson 3: Rendering Frames"(http://www.directxtutorial.com/Lesson.aspx?lessonid=11-4-3)
    folgende Fehlermeldung:

    cygwin_exception::open_stackdumpfile: Dumping stack trace to datei.exe.stackdump

    Nach Auskommentieren von Code habe ich erkannt, dass die Fehlerursache
    in der Zeile

    swapchain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
    

    liegt. Den 3. Parameter habe ich mal NULL gesetzt, dennoch die gleiche
    Fehlermeldung. Den 2.Parameter konnte ich jedoch nicht NULL setzen, da die
    Funktion sonst nicht erkannt wird.



  • Zeig mal Deinen kompletten Code.



  • Hast du denn den Code für InitD3D aus Lesson 2 beibehalten, so daß swapchain initialisiert wird?
    Das ist, was mit

    // Direct3D initialization
    // ...
    

    gemeint ist.



  • Den Code habe ich über copy and paste übernommen.
    Als einzige Änderung wurde in der RenderFrame()-Funktion in Zeile

    devcon->ClearRenderTargetView(backbuffer, D3DXCOLOR(0.0f, 0.2f, 0.4f, 1.0f));
    

    der 2. Parameter ersetzt, da D3DXCOLOR nicht erkannt wird.

    float clearColor[4] = { 0.0f, 0.0f, 0.25f, 1.0f };
    devcon->ClearRenderTargetView(backbuffer, clearColor);
    

    https://cplusplus.com/forum/windows/85811/



  • Dann hast du beim C&P trotzdem etwas falsch gemacht.
    Zeige doch einfach mal deine InitD3D-Funktion.



  • void InitD3D(HWND hWnd){ 
    	DXGI_SWAP_CHAIN_DESC scd; 
    	ZeroMemory(&scd, sizeof(DXGI_SWAP_CHAIN_DESC));
    
    	scd.BufferCount = 1; 
    	scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; 
    	scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; 
    	scd.OutputWindow = hWnd; 
    	scd.Windowed = TRUE; 
    
    	// create a device, device context and swap chain
    	D3D11CreateDeviceAndSwapChain(NULL,
    				      D3D_DRIVER_TYPE_HARDWARE,
    				      NULL, 
    				      NULL, 
    				      NULL, 
    				      NULL, 
    				      D3D11_SDK_VERSION, 
    				      &scd, 
    				      &swapchain, 
    				      &dev, 
    				      NULL, 
    				      &devcon); 
    
    	 //get the address of the back buffer
    	ID3D11Texture2D *pBackBuffer;
    	swapchain->GetBuffer(0, __uuidof(ID3D11Texture2D),(LPVOID*)&pBackBuffer);
    	
    }
    


  • Überprüfe mal den Rückgabewert von D3D11CreateDeviceAndSwapChain bzw. schau mal welchen Wert swapchain nach dem Aufruf hat.

    Verwendest du denn eine IDE, wo du den Code auch debuggen kannst?

    PS: Schon wieder Code, wo der Rückgabewert nicht überprüft wird (hatte ich gerade in einem anderen Forum auch)...


Anmelden zum Antworten