DirectX "stürzt ab"

Bei den Search Directories gibt es einen Reiter namens "Linker".
Nachdem ich als Standard-Compiler den MinGW Compiler angegeben hatte, stand unter diesem Reiter die Angabe
Code:
C:\MinGW\lib
.
Außerdem wurde in einem anderem Buch, das ich gelesen habe gesagt, man solle in dieses Menü die Pfade für das Platform-SDK und das DirectXSDK schreiben.
Deshalb habe ich die Bibliothek dort angegeben.
 
Bei den Search Directories gibt es einen Reiter namens "Linker".
Nachdem ich als Standard-Compiler den MinGW Compiler angegeben hatte, stand unter diesem Reiter die Angabe
Code:
C:\MinGW\lib
.
Außerdem wurde in einem anderem Buch, das ich gelesen habe gesagt, man solle in dieses Menü die Pfade für das Platform-SDK und das DirectXSDK schreiben.
Deshalb habe ich die Bibliothek dort angegeben.
Es war die Rede von Pfaden, nicht von Bibliotheken (Dateien).
 
Oh.
Ich habe gerade versucht eines der Spiele aus dem Buch zu starten.
Mit folgender Fehlermeldung:
Code:
Die Anwendung konnte nicht gestartet werden, weil TriBase.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben
Ich habe den Ordner von TriBase einfach auf meine Festplatte kopiert (C:\Programme\TriBase) und dann die Verzeichnisse in Code::Blocks und vc++2008 angegeben. War das falsch? Muss ich die Datei TriBase.dll in einen speziellen Ordner kopieren...
:confused:

Mein Fehler ich meinte Pfad. In habe angegeben:
Code:
C:\Programme\TriBase\Lib
 
Ich habe den Ordner von TriBase einfach auf meine Festplatte kopiert (C:\Programme\TriBase) und dann die Verzeichnisse in Code::Blocks und vc++2008 angegeben. War das falsch? Muss ich die Datei TriBase.dll in einen speziellen Ordner kopieren...
:confused:
Ja, die DLL wird in bestimmten Pfaden gesucht: http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx

Du könntest die DLL einfach in das Verzeichnis wo deine .exe drin ist legen.

Gruß
 
Ich habe es sowohl mit vc++ 2008 als auch mit Code::Blocks versucht.
Code::Blocks gibt aus:
Code:
main.cpp
Linking console executable: bin\Debug\dreieck.exe
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class tbColor & __thiscall tbColor::operator=(class tbColor const &)" (__imp_4tbColor@@QAEAAV0@ABV0@@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbColor::tbColor(float,float,float)" (__imp_0tbColor@@QAE@MMM@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class tbVector3 & __thiscall tbVector3::operator=(class tbVector3 const &)" (__imp_4tbVector3@@QAEAAV0@ABV0@@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbVector3::tbVector3(float,float,float)" (__imp_0tbVector3@@QAE@MMM@Z) referenced in function _WinMain@16
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbColor::tbColor(void)" (__imp_0tbColor@@QAE@XZ) referenced in function "public: __thiscall SVertex::SVertex(void)" (0SVertex@@QAE@XZ)
main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall tbVector3::tbVector3(void)" (__imp_0tbVector3@@QAE@XZ) referenced in function "public: __thiscall SVertex::SVertex(void)" (0SVertex@@QAE@XZ)
bin\Debug\dreieck.exe : fatal error LNK1120: 6 unresolved externals
Process terminated with status 1120 (0 minutes, 2 seconds)
7 errors, 0 warnings
vc++2008 sagt
Code:
Buildprotokoll     Erstellen wurde gestartet: Projekt: "dreick", Konfiguration: "Debug|Win32"
 Befehlszeilen     Die temporäre Datei "c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\dreick\dreick\Debug\RSP00000240524004.rsp" wird erstellt. Inhalt:
[
/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /c /ZI /TP ".\khtd.cpp"
]Erstellen der Befehlszeile "cl.exe @"c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\dreick\dreick\Debug\RSP00000240524004.rsp" /nologo /errorReport:prompt" Ausgabefenster     Kompilieren...
cl : Command line warning D4002 : ignoring unknown option '/errorReport:prompt'
cl : Command line warning D4024 : unrecognized source file type 'ÿþ/', object file assumed
LINK : fatal error LNK1181: cannot open input file ' ?/.obj'
 Ergebnisse     Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\dreick\dreick\Debug\BuildLog.htm" gespeichert.
dreick - 1 Fehler, 2 Warnung(en)
Das Debugging konnte ich nicht starten, da nunmehr noch nicht einmal die Kompilierung funktioniert.

Zur Übersicht:
eine globale Definition:
Code:
struct SVertex
{tbVector3 vPosition;
tbColor dwColor;
};
SVertex g_tv[3];
Hier die bei Code::Blocks kritischen Zeilen ("tribase.h" ist eingebunden)
Code:
g_tv[0].vPosition=tbVector3(1.0f,1.0f,1.0f);
g_tv[1].vPosition=tbVector3(2.0f,1.0f,1.0f);
g_tv[2].vPosition=tbVector3(1.5f,2.0f,1.0f);
g_tv[0].dwColor=tbColor(1.0f,0.0f,0.0f);
g_tv[1].dwColor=tbColor(1.0f,0.0f,0.0f);
g_tv[2].dwColor=tbColor(1.0f,0.0f,0.0f);
Bei vc++ 2008 weiß ich nicht, wo der Fehler auftritt

Noch etwas wichtiges:
ich habe die Quellcode, Resource, Header ..... Dateien aus dem Bespielprogramm "Das erste Dreieck" kopiert und in ein vc++2008 Projekt eingefügt. Alle Dateien sind vorhanden, der Quellcode wurde genau wie im Buch übernommen.
Die Fehlermeldung lautet
Code:
Buildprotokoll     Erstellen wurde gestartet: Projekt: "Namen_eingeben", Konfiguration: "Release|Win32"
 Befehlszeilen     Die temporäre Datei "c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\Namen_eingeben\Namen_eingeben\Release\RSP00000423243664.rsp" wird erstellt. Inhalt:
[
/O2 /Oi /GL /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /FD /EHsc /MD /Gy /Fo"Release\\" /Fd"Release\vc90.pdb" /W3 /c /Zi /TP "d:\CD\Beispiele\Kapitel 02\03 - Das erste Dreieck\Dreieck.cpp"
]Erstellen der Befehlszeile "cl.exe @"c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\Namen_eingeben\Namen_eingeben\Release\RSP00000423243664.rsp" /nologo /errorReport:prompt" Ausgabefenster     Kompilieren...
cl : Command line warning D4002 : ignoring unknown option '/errorReport:prompt'
cl : Command line warning D4024 : unrecognized source file type 'ÿþ/', object file assumed
LINK : fatal error LNK1181: cannot open input file ' ?/.obj'
 Ergebnisse     Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Martin Klein\Eigene Dateien\Visual Studio 2008\Projects\Namen_eingeben\Namen_eingeben\Release\BuildLog.htm" gespeichert.
Namen_eingeben - 1 Fehler, 2 Warnung(en)
Es scheint also an der vc++2008 Konfiguration zu liegen. Kann es sein, dass ich irgend etwas gravierendes vergessen habe? Ich weiß nicht mehr weiter
 
Ich habe es sowohl mit vc++ 2008 als auch mit Code::Blocks versucht.
Dann versuch's mal mit MinGW.
Code::Blocks gibt aus:
Geh mal in die Compiler Einstellungen, auf dem "Andere Einstellungen" Tab für "Compiler logging" wähle mal full command line. Dann zeig nochmal das Build Log.

Kann es evlt. sein, das du die Bibliothek nur in der Release Konfiguration und nicht in der Debug-Konfiguration eingegeben hast?
Mach am besten nochmal ein neues Projekt auf.

Gruß

anfängerregnäfna hat gesagt.:
Noch etwas wichtiges:
ich habe die Quellcode, Resource, Header ..... Dateien aus dem Bespielprogramm "Das erste Dreieck" kopiert und in ein vc++2008 Projekt eingefügt.
Das ist zu ungenau. Was genau hast du wo eingefügt? Was für ein Projekt hast du angelegt?

\edit: oder poste einfach mal die .vcproj Datei. (als .txt anhängen)
 
Code::Blocks verwendet MinGW

Eine Einstellung "full command line" habe ich weder bei code:.blocks noch bei vc++2008 gefunden.

Die Bibliothek wurde (im Quellcode) in beiden Dateien angegeben(Debug/Release)

Im Anhang müsste sich die .vcproj Datei vom Beispielprogramm aus dem Buch befinden (als .txt) ,da ich noch nicht sehr viel Erfaahrung mit diesem Forum habe schreibe ich sie noch einmal als Code

Code:
<?xml version="1.0" encoding="W
indows-1252"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="7.10"
	Name="02-03 Dreieck"
	ProjectGUID="{A45D29BA-DF0E-462F-8888-68FD66C7FEC4}"
	SccProjectName=""
	SccLocalPath="">
	<Platforms>
		<Platform
			Name="Win32"/>
	</Platforms>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory=".\Debug"
			IntermediateDirectory=".\Debug"
			ConfigurationType="1"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="FALSE"
			CharacterSet="2">
			<Tool
				Name="VCCLCompilerTool"
				Optimization="0"
				PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
				BasicRuntimeChecks="3"
				RuntimeLibrary="5"
				UsePrecompiledHeader="2"
				PrecompiledHeaderFile=".\Debug/Dreieck.pch"
				AssemblerListingLocation=".\Debug/"
				ObjectFile=".\Debug/"
				ProgramDataBaseFileName=".\Debug/"
				WarningLevel="3"
				SuppressStartupBanner="TRUE"
				DebugInformationFormat="4"/>
			<Tool
				Name="VCCustomBuildTool"/>
			<Tool
				Name="VCLinkerTool"
				AdditionalOptions="/MACHINE:I386"
				AdditionalDependencies="tribased.lib d3d9.lib dxerr9.lib odbc32.lib odbccp32.lib"
				OutputFile=".\Debug/Dreieck.exe"
				LinkIncremental="2"
				SuppressStartupBanner="TRUE"
				GenerateDebugInformation="TRUE"
				ProgramDatabaseFile=".\Debug/Dreieck.pdb"
				SubSystem="2"/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="_DEBUG"
				MkTypLibCompatible="TRUE"
				SuppressStartupBanner="TRUE"
				TargetEnvironment="1"
				TypeLibraryName=".\Debug/Dreieck.tlb"/>
			<Tool
				Name="VCPostBuildEventTool"
				CommandLine="COPY &quot;$(TargetPath)&quot; .\"/>
			<Tool
				Name="VCPreBuildEventTool"/>
			<Tool
				Name="VCPreLinkEventTool"/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="_DEBUG"
				Culture="1031"/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"/>
			<Tool
				Name="VCXMLDataGeneratorTool"/>
			<Tool
				Name="VCWebDeploymentTool"/>
			<Tool
				Name="VCManagedWrapperGeneratorTool"/>
			<Tool
				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory=".\Release"
			IntermediateDirectory=".\Release"
			ConfigurationType="1"
			UseOfMFC="0"
			ATLMinimizesCRunTimeLibraryUsage="FALSE"
			CharacterSet="2">
			<Tool
				Name="VCCLCompilerTool"
				InlineFunctionExpansion="1"
				PreprocessorDefinitions="WIN32,NDEBUG,_WINDOWS"
				StringPooling="TRUE"
				RuntimeLibrary="4"
				EnableFunctionLevelLinking="TRUE"
				UsePrecompiledHeader="2"
				PrecompiledHeaderFile=".\Release/Dreieck.pch"
				AssemblerListingLocation=".\Release/"
				ObjectFile=".\Release/"
				ProgramDataBaseFileName=".\Release/"
				WarningLevel="3"
				SuppressStartupBanner="TRUE"/>
			<Tool
				Name="VCCustomBuildTool"/>
			<Tool
				Name="VCLinkerTool"
				AdditionalOptions="/MACHINE:I386"
				AdditionalDependencies="tribase.lib d3d9.lib dxerr9.lib odbc32.lib odbccp32.lib"
				OutputFile=".\Release/Dreieck.exe"
				LinkIncremental="1"
				SuppressStartupBanner="TRUE"
				ProgramDatabaseFile=".\Release/Dreieck.pdb"
				SubSystem="2"/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="NDEBUG"
				MkTypLibCompatible="TRUE"
				SuppressStartupBanner="TRUE"
				TargetEnvironment="1"
				TypeLibraryName=".\Release/Dreieck.tlb"/>
			<Tool
				Name="VCPostBuildEventTool"
				CommandLine="COPY &quot;$(TargetPath)&quot; .\"/>
			<Tool
				Name="VCPreBuildEventTool"/>
			<Tool
				Name="VCPreLinkEventTool"/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1031"/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"/>
			<Tool
				Name="VCXMLDataGeneratorTool"/>
			<Tool
				Name="VCWebDeploymentTool"/>
			<Tool
				Name="VCManagedWrapperGeneratorTool"/>
			<Tool
				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<Filter
			Name="Quellcodedateien"
			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
			<File
				RelativePath="..\..\Allgemeines\Direct3DEnum.cpp">
			</File>
			<File
				RelativePath=".\Dreieck.cpp">
			</File>
			<File
				RelativePath="..\..\Allgemeines\InitDirect3D.cpp">
			</File>
			<File
				RelativePath="..\..\Allgemeines\InitWindow.cpp">
			</File>
		</Filter>
		<Filter
			Name="Header-Dateien"
			Filter="h;hpp;hxx;hm;inl">
			<File
				RelativePath="..\..\Allgemeines\Allgemeines.h">
			</File>
			<File
				RelativePath="..\..\Allgemeines\Direct3DEnum.h">
			</File>
			<File
				RelativePath="..\..\Allgemeines\InitDirect3D.h">
			</File>
			<File
				RelativePath="..\..\Allgemeines\InitWindow.h">
			</File>
			<File
				RelativePath=".\resource.h">
			</File>
		</Filter>
		<Filter
			Name="Ressourcendateien"
			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
			<File
				RelativePath=".\Dreieck.rc">
			</File>
			<File
				RelativePath=".\Icon1.ico">
			</File>
		</Filter>
	</Files>
	<Globals>
	</Globals>
</VisualStudioProject>
 

Anhänge

  • Dreieck.txt
    5,1 KB · Aufrufe: 26
Zurück