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

18.03.2011, 14:54

Release-Version läd Effekte nicht

Hallo zusammen,

Ich sitze gerade mit ein paar Kumpels über einem größeren Projekt auf Basis der TriBase-Engine. Wir sind jetzt schon ziemlich weit und sind wollten dann zwecks eines Tests des Multiplayers einem der Grafiker einen Release-Build schicken, sind bei dem Versuch aber auf das Problem gestoßen, dass das Programm im Release nicht läuft. Der Fehler entsteht, wenn TriBase eine Schriftart laden will, und zwar beim Erstellen des Effektes für die Schriftart.

Quellcode

1
2
3
FEHLER: Der Aufruf von D3DXCreateEffect verursachte den DirectX-Fehler {FEHLERNUMMER}! Beschreibung: {FEHLERBESCHREIBUNG} (tbEffect.cpp, Zeile 63, Funktion tbEffect::Init)
FEHLER: Fehler beim Erstellen des Effekts! (tbFont.cpp, Zeile 100, Funktion tbFont::Init)
FEHLER: Fehler beim Laden der Schriftart! (tbFont.cpp, Zeile 135, Funktion tbFont::Init)


Interessant weiterhin: Ich muss die bibliothek LIBCMT ignorieren, damit er im release überhaupt linkt. Im Debug ist das nicht der Fall, da läuft das Spiel auch einwandfrei.

Im Grunde haben beide Buildversionen ähnliche Einstellungen:
- Beide linken die gleichen Libs (bis natürlich auf die tatsache, dass die debugversion immer die debug-libs linkt)
- Beide nutzen den Multi-Byte-Zeichensatz
- Beide linken gegen /MD bzw. /MDd

Gelinkte Dateien:

Release:

Assimp.lib
RakNetLibStatic.lib
ws2_32.lib
dbLibR.lib
tribase.lib
d3d9.lib
d3dx9.lib
dxerr9.lib
dxguid.lib
dsound.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comctl32.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib

Debug:

Assimp.lib
RakNetLibStaticDebug.lib
ws2_32.lib
dbLib.lib
tribased.lib
d3d9.lib
d3dx9.lib
dxerr9.lib
dxguid.lib
dsound.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comctl32.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib

und wie gesagt, Release ignoriert LIBCMT.

Ansonsten wird der selbe Quellcode compiliert.

Hat jemand ne Idee?

Danke im Voraus.

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

2

18.03.2011, 15:15

Entweder falsches Basisverzeichnis, so dass die Dateien nicht gefunden werden, oder eine nicht initialisierte Variable. Aktiviere im Release-Build doch einfach mal Debug-Informationen und setze einen Breakpoint auf die erste Funktion, die überaschend scheitert.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

3

18.03.2011, 16:22

Ich nehme mal an, du hast das gleiche Problem, wie viele andere auch, mit den Inline-Effekten der TriBase-Engine, die angepasst werden müssen, weil sich mit den neueren DirectX SDKs der Effektstandard geändert hat:
Lösung: Problem mit tbFont und dem Erstellen von Effekten

4

18.03.2011, 16:36

Jep das is wahrscheinlich das Problem... Ich werde das mal machen und dann Meldung erstatten ;)

5

18.03.2011, 17:03

ja, das war das Problem. Ist jetzt behoben, aber ein neues ist aufgetreten: Hat das neue DX vllt etwas an DInput geändert? Ich bekommen nämlich keine vernünftigen Werte aus meinen Kontrollen mehr heraus und ich bewege mich konstant in eine Richtung, egal, ob ich ne Taste drücke oder nicht. Tritt aber nur im auf, wenn ich mich nicht unter der Debugumgebung von VC++ befinde (also nur, wenn ich die exe einfach so ausführe)

Zudem noch ne Frage: Gibt es irgendwo ein großes TriBase-Logo (mind. 1280x960)?

6

18.03.2011, 17:13

Jetzt verstehe ich die Welt nicht mehr.

Ich starte das Spiel 3 oder 4 mal, dann funzt alles einwandfrei, aber nur, wenn ich als Admin starte *confused*.

Zudem: Wieso konnte ich schon vorher die Debugversion starten, aber die release nicht?

Werbeanzeige