Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

22.09.2010, 11:07

VS2008 Professional - Die Anwendung konnte nicht korrekt gestartet werden (0xc000007b)

Hi, ich bin der neue ;)!

Ich habe mir vor kurzem das Buch 3D-Spieleprogrammierung mit DirectX 9 und C++ (2. Auflage) gekauft und wollte mich nun an die ersten Übungsaufgaben machen.

Folgendes Problem:
Ein Release-Build lässt sich problemlos starten doch sobald ich in meiner Entwicklungsumgebung (Visual Studio 2008 Professional Edition) einen Debug-Build starten möchte, bricht die Anwendung mit der Fehlermeldung ab:

- Anwendungsfehler -
"Die Anwendung konnte nicht korrekt gestartet werden (0xc000007b)"

So sieht mein Programmcode aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "TriBase.h"
#include <iostream>

int main( int argc, const char* argv[] ) {
    if(!tbInit()) {
        //Korrekt
        std::cout << "Korrekt";
    }
    else {
        //Fehler
        std::cout << "Fehler";
    }

    tbExit();
};


Ich habe ein ähnliches Problem mit OpenSceneGraph (OpenGL) gehabt und nicht lösen können weswegen ich die letzten Monate an meinem Laptop unter OSG entwickelt musste (denn da lief es problemlos). Da dies eigentlich nur als Zwischenlösung gedacht war und ich wer weis nicht schon alles ausprobiert habe (unter OSG) um das Problem zu lösen, hoffe ich hier auf Hilfe treffen zu können. Ich nehme zwar an, dass ich @ meinem Dev-Lappi sicherlich wieder problemlos mit der TriBase-Engine arbeiten könnte, allerdings wäre es mir lieber dieses "kleine" Problem von meinem eigentlichen Desktop-Rechner beseitigt zu wissen.

Systemkonfig:
Win7 - 64bit
Visual Studio 2008 Professional Edition / SP1
Phenom II X4 955 (3,2 Ghz)
4Gb DDR3
Nvidia Geforce 9800 GTX

Was ich bereits versucht habe:
- mit Dependancy Walker sowohl Debug und Releas .exe verglichen. In beiden fehlt die (soweit ich herausfinden konnte überflüssige) IESHIMS.dll
- Tribase-Engine mit VS selbst kompiliert (hat mit der Anleitung aus dem Forum hier gut geklappt - allerdings nicht geholfen ^^)


Die SuFu habe ich tatsächlich schon fast überstrapaziert - naja, leider finde ich den Fehler nur in Kombination mit dem Hinweis "falsche Anwendungskonfiguration" - ich denke da geht es um nicht mitgelieferte DLLs etc. das wird mir vermutlich nicht weiterhelfen.

2

22.09.2010, 11:28

Hallo "Neuer", und willkommen im Forum! ;)

Hast du beide Versionen, Release und Debug, der Tribase neu kompiliert?
Bindest du dementsprechend auch die jeweils richtige Version in die Beispielprogramme ein?
Tritt der Fehler beim Starten aus der IDE heraus auf, oder als Stand-alone?
fka tm

3

22.09.2010, 12:07

Habe die Debug und Release Version der TriBase-Engine neu kompiliert. Für den Debug built lauten meine zusätzlichen Abhängigkeiten:

"tribased.lib d3dx9d.lib dinput8.lib dxerr9.lib dxguid.lib winmm.lib odbc32.lib odbccp32.lib dsound.lib strmiids.lib strmbased.lib kernel32.lib user32.lib gdi32.lib winspool.lib comctl32.lib comdlg32.lib advapi32.lib"

(habs auch mal nur auf tribased.lib reduziert - gleicher fehler!

Für die Release-Version:

"tribase.lib"

Der Fehler exisitert sowohl beim Start aus der IDE als auch als Stand-alone!

4

22.09.2010, 12:25

Aus welchem Ordner des DirectX-SDK bindest du die Libs ein? x86 oder x64?
Welche Zielplattform ist unter Projekteigenschaften - Linker -> Erweitert angegeben?
Möglicherweise gibts da Konflikte zwischen 32- und 64-Bit-Versionen.
fka tm

5

22.09.2010, 12:37

Zusätzliche Bibliotheksverzeichnisse:
C:\Program Files (x86)\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib
(also nicht der Unterordner "x64")!
So hab ichs unter Extras->Optionen->Projekte und Projektmappen->C++-Verzeichnisse
eingestellt.

Zielcomputer: MachineX86 (/MACHINE:X86)


Wenn es eventuell an den DLL-Dateien liegen kann wenn ich den Debug-Build starte läd er folgende DLLs:

"tbTest.exe": "C:\Users\Quis\Documents\Visual Studio 2008\Projects\tbTest\Debug\tbTest.exe" geladen, Symbole wurden geladen.
"tbTest.exe": "C:\Windows\SysWOW64\ntdll.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\kernel32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\KernelBase.dll" wurde geladen
"tbTest.exe": "C:\Users\Quis\Documents\Visual Studio 2008\Projects\tbTest\Debug\TriBaseD.dll" geladen, Symbole wurden geladen.
"tbTest.exe": "C:\Windows\SysWOW64\d3d9.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\msvcrt.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\sechost.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\rpcrt4.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\sspicli.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\cryptbase.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\user32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\gdi32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\lpk.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\usp10.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\advapi32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\version.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\d3d8thk.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\dwmapi.dll" wurde geladen
-> Absturz mit oben genannter Fehlermeldung

Für die Release-Version werden hier folgende DLLs geladen:

"tbTest.exe": "C:\Users\Quis\Documents\Visual Studio 2008\Projects\tbTest\Release\tbTest.exe" geladen, Symbole wurden geladen.
"tbTest.exe": "C:\Windows\SysWOW64\ntdll.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\kernel32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\KernelBase.dll" wurde geladen
"tbTest.exe": "C:\Users\Quis\Documents\Visual Studio 2008\Projects\tbTest\Release\TriBase.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"tbTest.exe": "C:\Windows\SysWOW64\d3d9.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\msvcrt.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\sechost.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\rpcrt4.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\sspicli.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\cryptbase.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\user32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\gdi32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\lpk.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\usp10.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\advapi32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\version.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\d3d8thk.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\dwmapi.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\dinput8.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\dsound.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\ole32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\winmm.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\powrprof.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\setupapi.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\cfgmgr32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\oleaut32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\devobj.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\comdlg32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\shlwapi.dll" wurde geladen
"tbTest.exe": "C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5\comctl32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\shell32.dll" wurde geladen
"tbTest.exe": "C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a\msvcp90.dll" wurde geladen
"tbTest.exe": "C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a\msvcr90.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\imm32.dll" wurde geladen
"tbTest.exe": "C:\Windows\SysWOW64\msctf.dll" wurde geladen
INFO: TriBase-Engine wird initialisiert... (TriBase.cpp, Zeile 86, Funktion tbInit)
"tbTest.exe": "C:\Windows\SysWOW64\uxtheme.dll" wurde geladen
INFO: Initialisierung komplett! (TriBase.cpp, Zeile 104, Funktion tbInit)
INFO: TriBase-Engine wird heruntergefahren... (TriBase.cpp, Zeile 113, Funktion tbExit)
INFO: Alle Speicherbereiche freigegeben! (tbMemory.cpp, Zeile 116, Funktion tbMemExit)
INFO: Herunterfahren abgeschlossen! (TriBase.cpp, Zeile 149, Funktion tbExit)

6

22.09.2010, 12:40

Würde dir mal ein Update des SDKs empfehlen.
Das ist ja schon uralt! ;)
Ob das dein Problem löst, sei dahingestellt.

Welches Platform-/Windows SDK verwendest du?
fka tm

7

22.09.2010, 13:01

Hab das SDK von der CD genommen da ich sicher gehen wollte das alles funktioniert (kann ich ohne probleme auf neuere DirectX SDKs z.b. 11 umsteigen ohne das es Probleme mit TriBase gibt?).

Ich habe kein spezielles Windows SDK installiert - wo finde ich die Information denn welches ich benutze?

8

22.09.2010, 13:08

Neuere SDKs sollten kein Problem darstellen.
Das Windows SDK findest du (normalerweise) unter Programme/Microsoft SDKs.

Führst du VS eigentlich als Administrator aus?

Edit
Welche Vorlage hast du beim Erstellen des Beispielprogrammes verwendet?
Könnte auch mit .net Problemen zusammenhängen.
fka tm

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »TrikkieMikkie« (22.09.2010, 13:17)


9

22.09.2010, 13:24

Microsoft Windows SDK v6.0A
Hab mir eben das aktuellste DX SDK geladen und installiert. Die Pfade wurde automatisch zu VS hinzugefügt, leider besteht das Problem weiterhin!

In der Regel führe ich es nicht als Admin aus, habe ich eben auch probiert und macht keinen Unterschied bei dem Fehler. Habs aber jetzt dauerhaft so eingestellt - schaden kanns ja nicht...

Vorlage war "leeres Projekt"!

10

22.09.2010, 13:43

Kannst mal versuchen, statisch zu linken. Projekteinstellungen - C++ - Codegenerierung -> Multithreaded-Debug (/MTd)

Ansonsten lad des Projekt mal irgendwo hoch!?
fka tm

Werbeanzeige