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

cereus

Frischling

  • »cereus« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Ufg

  • Private Nachricht senden

1

18.05.2008, 13:31

3D-Spieleprogrammierung: Fehler bei Beispiel 03 (Kapitel 02)

hi
ich versuch jetzt schon seit einiger Zeit mit der TriBase-Engine zu arbeiten, doch ich bekomm immer nur Fehlermeldungen zurück.

Bei Beispiel 03 bekomme ich folgende Fehlermeldung:





Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Erstellen gestartet: Projekt: test50, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Dreieck.cpp
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(60) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [31]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(75) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [35]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(182) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [22]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(200) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [36]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(210) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [41]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(220) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [38]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(244) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [42]' in 'LPCWSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Michael\Eigene Dateien\Visual C++\test50\test50\Debug\BuildLog.htm" gespeichert.
1>test50 - 7 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Ich arbeite mit Microsoft Visual C++ 2008 Express Edition.
Ich hab die Verzeichnisse wie im Buch beschrieben hinzugefügt und TRIBASED.LIB gelinkt.

ich hoffe es kann mir jemand helfen! Danke schon mal im Voraus.
cereus :cry:
--- ---

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

18.05.2008, 13:34

Hast du das FAQ durch? Sieht nach Standard Problem aus.

https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=5547

cereus

Frischling

  • »cereus« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Ufg

  • Private Nachricht senden

3

18.05.2008, 14:12

da hab ich schon geschaut, aber nix gefunden!
--- ---

4

18.05.2008, 14:17

Zitat

1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(60) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [31]' in 'LPCWSTR' nicht möglich


Du versuchst UNICODE und ASCII zu kombinieren. Du hast 2 Möglichkeiten:
1. Komplett auf UNICODE umstellen.
2. UNICODE deaktivieren.

Was allerdings in Zusammenhang mit der Tribase am besten ist, weiß ich nicht, da ich selbst dass Buch nicht besitze.

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

5

18.05.2008, 14:52

Zitat von »"Steef"«

Zitat

1>h:\beispiele\kapitel 02\03 - das erste dreieck\dreieck.cpp(60) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [31]' in 'LPCWSTR' nicht möglich


Du versuchst UNICODE und ASCII zu kombinieren. Du hast 2 Möglichkeiten:
1. Komplett auf UNICODE umstellen.
2. UNICODE deaktivieren.


Da hast du die beste Lösung vergessen: Den Code durch kleine Anpassungen, die rasch zur Gewohnheit werden, so anpassen, dass man ihn nach belieben mit oder ohne Unicode compilieren kann.
Wie das geht steht ca. 100 mal in diesem Forum und hier einmal kurz von mir zusammengefasst.
Signaturen werden überbewertet

cereus

Frischling

  • »cereus« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Ufg

  • Private Nachricht senden

6

18.05.2008, 15:24

okay danke!
ich hab UNICODE ausgeschalten. Nur jetzt bekomm ich ein paar neue Fehler:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1>------ Neues Erstellen gestartet: Projekt: test50, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "test50" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>Dreieck.cpp
1>Ressourcen werden kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Manifest in Ressourcen wird kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Verknüpfen...
1>Dreieck.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct HWND__ * g_hWindow" (?g_hWindow@@3PAUHWND__@@A)".
1>Dreieck.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""struct IDirect3DDevice9 * g_pD3DDevice" (?g_pD3DDevice@@3PAUIDirect3DDevice9@@A)".
1>Dreieck.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitWindow(void)" (?ExitWindow@@YA?AW4tbResult@@XZ)" in Funktion ""enum tbResult __cdecl ExitApplication(void)" (?ExitApplication@@YA?AW4tbResult@@XZ)".
1>Dreieck.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl ExitDirect3D(void)" (?ExitDirect3D@@YA?AW4tbResult@@XZ)" in Funktion ""enum tbResult __cdecl ExitApplication(void)" (?ExitApplication@@YA?AW4tbResult@@XZ)".
1>Dreieck.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitDirect3D(struct SDirect3DParameters *,struct HWND__ *)" (?InitDirect3D@@YA?AW4tbResult@@PAUSDirect3DParameters@@PAUHWND__@@@Z)" in Funktion ""enum tbResult __cdecl InitApplication(void)" (?InitApplication@@YA?AW4tbResult@@XZ)".
1>Dreieck.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl InitWindow(int,int,char *,struct HICON__ *)" (?InitWindow@@YA?AW4tbResult@@HHPADPAUHICON__@@@Z)" in Funktion ""enum tbResult __cdecl InitApplication(void)" (?InitApplication@@YA?AW4tbResult@@XZ)".
1>Dreieck.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""enum tbResult __cdecl GetDirect3DParameters(struct SDirect3DParameters *)" (?GetDirect3DParameters@@YA?AW4tbResult@@PAUSDirect3DParameters@@@Z)" in Funktion ""enum tbResult __cdecl InitApplication(void)" (?InitApplication@@YA?AW4tbResult@@XZ)".
1>C:\Dokumente und Einstellungen\Michael\Eigene Dateien\Visual C++\test50\Debug\test50.exe : fatal error LNK1120: 7 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Michael\Eigene Dateien\Visual C++\test50\test50\Debug\BuildLog.htm" gespeichert.
1>test50 - 8 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========


Ich hoffe da kann mir einer von euch noch weiterhelfen!! :?:
--- ---

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

7

18.05.2008, 15:39

auch das wurde schon sehr oft diskutiert (cih schreib da vllt ma dan den faq -.-).

du hast vergessen, die TriBase zu linken.

projekteinstellungen -> linker -> Eingabe -> zusätzliche abhängigkeiten -> tribase.lib

cereus

Frischling

  • »cereus« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Ufg

  • Private Nachricht senden

8

19.05.2008, 16:08

ich hab tribase gelinkt! Aber es geht nicht :cry:
--- ---

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

9

19.05.2008, 16:21

Du musst die TriBase.lib aber bei jedem neustart von VC++ linken. Hast du das gemacht?

EDIT:
Oder du verwendest allternativ #pragma comment("");
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

cereus

Frischling

  • »cereus« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Ufg

  • Private Nachricht senden

10

19.05.2008, 21:31

ich link TriBase.lib bei Projekt->Eigenschaften->Linker->Zusätzliche Abhängigkeiten. Das is doch richtig oder?
#pragma comment () verwend ich nicht!
--- ---

Werbeanzeige