"DirectX 11", Visual C++ 2010 macht nicht mit!



  • Laut Debugger returned dein Programm -1 und beendet. Wenn ich deinen Code so anschau, bedeutet das wohl, dass das Fenster nicht erzeugt wurde!?



  • Okay,

    wenn er das Programm mit -1 Returnd gibt es nur zwei stellen.
    entweder

    if(!RegisterClassEx(&wndClass))
    		return -1;
    

    hier oder hier

    if(!hwnd)
    		return -1;
    

    Also ich habe das ganze mal ausprobiert und bei DEV-CPP funzt der Code
    aber nur mit WinMain und nicht wWinMain usw. Aber er kann das Fenster nicht
    halten. Bei Visual 2010 erstellt er garkein Fenster und bricht bei return -1 ab
    und zeigt die Hinweise/Fehler mit den dll's.

    Ich probiere morgen weiter. Würde mich aber trozdem weiter über Hinweise freuen.



  • Die Frage ist doch wieso du bei wWinMain (was du nicht ändern musst wie Schlaumeier Otafu-Otaku das behauptet!) ein CreateWindowA benutzt. Entweder machst du nur CreateWindow daraus und achteste darauf Unicode aktive zu haben oder rufst direkt CreateWindowW auf. - Das sind Vorschläge, daher weiß ich nicht genau, ob genau das dein Problem löst!



  • Habe wieder einbischen rumprobiert und es sieht fast so aus als würde Visual 2010 c++ nicht ganz laufen, denn es hatte ganz kurz funkzioniert. Kann es sein das Verzeichnisse oder Linker fehlen? Welche könnten bei diesen Fehlern in Frage kommen?



  • Was für Fehler?



  • Ich denke mal das Visual C++ 2010 probleme hat auf die Verzeichnisse zu zugreifen, wo kernel32.dll usw. angelegt sind. Vorher hatte ich keine Probleme doch seit geraumer Zeit wird dies immer wieder angezeigt. Selbst bei dem kleinsten Programm zeigt er an das er es geladen hat aber er kann es nicht finden oder öffnen diese PDB files. Darum die Frage liegt es am Bediener (also mir) oder doch bei dem Programm.



  • Hast du denn Debugsymbole für die System dlls installiert oder wieso genau wundert es dich, dass er diese nicht finden kann? Für die Funktion deines Programms ist das völlig irrelevant. Dein Programm wird laut obigem Log völlig korrekt gestartet und ausgeführt und returned -1. Und das hat nichts mit irgendwelchen Einstellungen oder falschen Libraries zu tun, sondern liegt sehr wahrscheinlich an einem Programmierfehler deinerseits. Find raus, wieso dein Programm -1 returned...



  • ...



  • Nein habe ich anscheinend nicht und da ich das noch nie brauchte, würde ich mich freuen wenn du mir sagst wie das geht.^^



  • Mr.William schrieb:

    Nein habe ich anscheinend nicht und da ich das noch nie brauchte, würde ich mich freuen wenn du mir sagst wie das geht.^^

    Wie was geht?



  • MSDN Library schrieb:

    HWND WINAPI CreateWindow(
      _In_opt_  LPCTSTR lpClassName,
      _In_opt_  LPCTSTR lpWindowName,
      _In_      DWORD dwStyle,
      _In_      int x,
      _In_      int y,
      _In_      int nWidth,
      _In_      int nHeight,
      _In_opt_  HWND hWndParent,
      _In_opt_  HMENU hMenu,
      _In_opt_  HINSTANCE hInstance,
      _In_opt_  LPVOID lpParam
    );
    

    Mr.William schrieb:

    wndClass.lpszClassName = "BlackBox v1.0";
    

    Mr.William schrieb:

    HWND hwnd = CreateWindowA ("BlackBoxClass", "BlackBox v1.0",
    

    Fällt dir was auf?



  • Also mit GetLaseError() wurden keine Probleme aufgefunden. Wie sieht es eigentlich aus mit Antivir-Software oder Viren, die die arbeit von Visual C++ 2010 verhindern kann?



  • Nochmal: Visual Studio arbeitet völlig einwandfrei, das Problem liegt an deinem Code. Die Antwort steht im Post über deinem.



  • Also danke sowirddasnixlassessein dein hinweis war ins schwarze getroffen. Das Programm wird jetzt ausgeführt.

    So sieht es viel besser aus.^^

    HWND hwnd = CreateWindowA ("BlackBoxWindowClass", "BlackBox",
    		WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, rc.right - rc.left,
    		rc.bottom - rc.top, NULL, NULL ,hInstance, NULL);
    
    wndClass.lpszClassName = "BlackBoxWindowClass";
    

    Danke an alle die mir geholfen haben.



  • Und für die Zukunft einfach folgende Grundregel merken: Die Wahrscheinlichkeit, dass die Ursache für derartige Fehler nicht in deinem Code verborgen liegt, ist extrem gering. 😉


Anmelden zum Antworten