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

28.12.2010, 15:39

Problem beim Kompilieren von Fenster (Kapitel 02-01)

Aloha,
ich habe gestern versucht das Fenster aus dem Beispiel zu Kompilieren

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Kapitel 2
// Beispielprogramm 01
// ===================
// Erstellen des Fensters und Aufrufen der Nachrichtenschleife.
// Die dafür nötigen Funktionen sind in der Datei InitWindow.cpp
// gespeichert.

#include <Windows.h>
#include <TriBase.h>
#include "..\\..\\Allgemeines\\InitWindow.h"
#include "Resource.h"

// ******************************************************************
// Render-Funktion
tbResult Render(float fNumSecsPassed)
{
    return TB_OK;
}

// ******************************************************************
// Move-Funktion
tbResult Move(float fNumSecsPassed)
{
    return TB_OK;
}

// ******************************************************************
// Windows-Hauptfunktion
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   char* pcCmdLine,
                   int iShowCmd)
{
    // TriBase-Engine initialisieren
    tbInit();

    // Fenster initialisieren
    InitWindow(640, 480, "Beispielprogramm Nr. 2: Fenster",
            LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)));

    // Nachrichtenschleife
    tbDoMessageLoop(Render, Move);
    
    // Fenster herunterfahren
    ExitWindow();

    // Engine herunterfahren
    tbExit();

    return 0;
}

// ******************************************************************


Beim ersten Versuch das Programm zu Kompilieren hat er folgende Fehlermeldung angezeigt:

C-/C++-Quelltext

1
1>.\Fenster.rc(10) : fatal error RC1015: cannot open include file 'mfc/afxres.h'.


Danach habe ich wie in diesem Forum beschrieben das 'mfc/afxres.h' aus "Fenster.rc" in 'afxres.h' abgeändert.

Nach erneutem Kompilieren erhalte ich dan folgende Fehlermeldung:

C-/C++-Quelltext

1
2
3
4
5
1>------ Erstellen gestartet: Projekt: 02-01 Fenster, Konfiguration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\Users\Florian\Desktop\Beispiele\Kapitel 02\01 - Fenster\.\Debug\02-01 Fenster.exe) entspricht nicht dem OutputFile-Eigenschaftswert (C:\Users\Florian\Desktop\Beispiele\Kapitel 02\01 - Fenster\Debug\Fenster.exe) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(02-01 Fenster) entspricht nicht dem OutputFile-Eigenschaftswert (Fenster) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>LINK : fatal error LNK1104: Datei "dxerr9.lib" kann nicht geöffnet werden.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Kann mir bitte einer helfen, denn ich bin am verzweifeln!! ;(

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

28.12.2010, 15:52

dxerr9.lib wurde in dxerr.lib umbenannt. Das musst du in den Linkereinstellunngen anpassen.

DirectX 9

3

28.12.2010, 20:56

Danke dir. Ich habe die Linkereinstllungen geändert, wie du es geschildert hast. Wollte es anschließend kompilieren. Dann bekam ich jedoch wieder einige Fehlermeldungen:

C-/C++-Quelltext

1
2
3
4
5
6
1>------ Erstellen gestartet: Projekt: 02-01 Fenster, Konfiguration: Debug Win32 ------
1>  InitWindow.cpp
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\Users\Florian\Desktop\Beispiele\Kapitel 02\01 - Fenster\.\Debug\02-01 Fenster.exe) entspricht nicht dem OutputFile-Eigenschaftswert (C:\Users\Florian\Desktop\Beispiele\Kapitel 02\01 - Fenster\Debug\Fenster.exe) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(02-01 Fenster) entspricht nicht dem OutputFile-Eigenschaftswert (Fenster) von Linker. Das Projekt wird daher möglicherweise nicht ordnungsgemäß erstellt. Damit dieses Problem behoben werden kann, müssen die Eigenschaftswerte für $(OutDir), $(TargetName) und $(TargetExt) dem in %(Link.OutputFile) angegebenen Wert entsprechen.
1>C:\TriBase\Bin\TriBaseD.dll : fatal error LNK1107: Ungültige oder beschädigte Datei: Lesen bei 0x310 nicht möglich.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Und so wie es aussieht ist meine TriBaseD.dll beschädigt.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

28.12.2010, 21:16

Warum braucht der Linker die DLL? Eigentlich sollte er mit der dazugehörigen TriBaseD.lib auskommen... Hast du in den Linkereinstellungen wirklich nur Libs eingetragen? Evtl. musst du auch die TriBase-Engine neu kompilieren, das solltest du als erstes versuchen. Hier ist eine Anleitung dazu: Lösung: TriBase und Visual C++ 2005/2008 Express (das Plattform SDK heißt Windows SDK).

5

29.12.2010, 12:30

Nocheinmal herzlichen dank für deine schnelle Antwort BurningWave. Jezt läuft alles ohne Probleme.

Werbeanzeige