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

21

30.05.2007, 17:29

in dem ordner hab ich nr 32.
wenn ich die datei einfach umbenenne kommt der fehler trotzdem noch
verstehe ich das richtig, dass die höhere zahl auch gleichzeitig bedeutet, dass die datei neuer ist?
warum wird dann nach einer älteren version verlangt?

ich habe jetzt eine seite gefunden wo man sich die dll runterladen kann, aber der fehler kommt immer noch...

Progater

Treue Seele

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

22

30.05.2007, 18:08

Du musst die Engine neu kompilieren...

Zitat

FEHLER: Der Aufruf von D3DXCreateEffect verursachte den DirectX-Fehler E_FAIL! Beschreibung: An undetermined error occurred (tbeffect.cpp, Zeile 63, Funktion tbEffect::Init)

Hast du das Problem behoben oder hast du es einfach so gelassen. Ich frage deswegen, weil ich nämlich dasselbe Problem habe.
To go back to the drawing board is not everyone's cup of tea! :-)

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

23

30.05.2007, 18:31

Zitat von »"herzog"«

in dem ordner hab ich nr 32.
wenn ich die datei einfach umbenenne kommt der fehler trotzdem noch
verstehe ich das richtig, dass die höhere zahl auch gleichzeitig bedeutet, dass die datei neuer ist?
warum wird dann nach einer älteren version verlangt?

ich habe jetzt eine seite gefunden wo man sich die dll runterladen kann, aber der fehler kommt immer noch...


es wird deswegen nach einer älteren funktion verlangt, weil der autor des programms ein älteres sdk genutzt hat. da gab es die 33 noch gar nicht.

24

31.05.2007, 14:20

@progater: bei der von mir kompilierten engine habe ich den fehler immer noch. bei der dll von der cd gibts den fehler nicht, weil es gar nicht erst startet, wegen der fehlenden .dll

aber warum wird die dll denn nicht gefunden, obwohl ich sie jetzt ja eigentlich habe?

Progater

Treue Seele

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

25

31.05.2007, 17:26

Tja, dann sind wir die einzigen, die mit Hilfe der TriBase-Engine ein bißchen Text sehen wollen. Oder will jemand das bezweifeln. Ich hab' echt keine Ahnung, wie man den Fehler korriegiert. In Visual Studio 6 ging alles problemlos. Ich hab' dann den selben Code in Microsoft Visual C++ 2005 Express Edition importiert und es tritt dieser fehler auf. :?:


Zitat

aber warum wird die dll denn nicht gefunden, obwohl ich sie jetzt ja eigentlich habe?

Ich nehme an, dass die DLL im System32-Ordner oder bei der EXE-Datei drin steckt. Wenn ja, dann passt sie nicht (so 'ne Vermutung).
Nimm doch die DLL von dem installiertem DirectX-SDK (Suchfunktion).
Es muss bestimmt eine geben. ;)
To go back to the drawing board is not everyone's cup of tea! :-)

26

31.05.2007, 18:11

Zitat

Ich nehme an, dass die DLL im System32-Ordner oder bei der EXE-Datei drin steckt. Wenn ja, dann passt sie nicht (so 'ne Vermutung).
Nimm doch die DLL von dem installiertem DirectX-SDK (Suchfunktion).
Es muss bestimmt eine geben. Wink

es gibt ja auch eine dll 32 vom sdk february 2007. aber trotzdem wird die alte verlangt. die habe ich mir dann besorgt und in den gleichen ordner wie die andere gepackt. immer noch der gleiche fehler....

na ja dann müssen wir halt sobald text ins spiel kommt nur noch mit release arbeiten ;)

Progater

Treue Seele

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

27

31.05.2007, 18:49

Zitat

es gibt ja auch eine dll 32 vom sdk february 2007. aber trotzdem wird die alte verlangt. die habe ich mir dann besorgt und in den gleichen ordner wie die andere gepackt. immer noch der gleiche fehler....

Sorry ich check' grad dein Problem nicht. Ich hab's so gemacht:
1. Das neue DirectX9-SDK heruntergeladen (April 07). http://www.microsoft.com/downloads/details.aspx?FamilyID=7ab978b5-5f1a-4f6a-88eb-fc646138beca&displaylang=en
2. Engine kompiliert nach folgendem Plan: https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=4810&start=0
3. Hab' jetzt den Fehler mit dem Text :( (und die DirectX- sowie TriBase-DLLs wurden automatisch ins System32-Ordner kopiert)

Zitat

na ja dann müssen wir halt sobald text ins spiel kommt nur noch mit release arbeiten Wink

Ups hab' es vergessen zu erwähnen: Wenn ich tbFont erstellen lasse, dann kriege ich in Debug diesen Eintrag im Log

Quellcode

1
"FEHLER: Der Aufruf von D3DXCreateEffect verursachte den DirectX-Fehler E_FAIL! Beschreibung: An undetermined error occurred (tbeffect.cpp, Zeile 63, Funktion tbEffect::Init) "
Und in Release geht alles problemlos.
Wenn ich allerdings den Text zeichnen will (tbFont::DrawText), lässt sich der Code nichtmal erstellen. Im Ausgabefenster steht dann(bei beiden Konfigurationen):

Quellcode

1
2
1>cede.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: enum tbResult __thiscall tbFont::DrawTextW(class tbVector2,char const *,unsigned long,int,class tbColor const &,class tbColor &,class tbVector2,float,float,float,float,float)" (__imp_?DrawTextW@tbFont@@QAE?AW4tbResult@@VtbVector2@@PBDKHABVtbColor@@AAV4@0MMMMM@Z)" in Funktion ""enum tbResult __cdecl Render(float)" (?Render@@YA?AW4tbResult@@M@Z)".
prog.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

Hast du dasselbe Problem oder kannst du in Release den Text zeichen lassen?
To go back to the drawing board is not everyone's cup of tea! :-)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

28

31.05.2007, 20:41

Ich vermute mal die Funktion heißt nicht DrawTextW sondern DrawText -> dementsprechend sollte ein

C-/C++-Quelltext

1
2
3
#ifdef DrawText
#undef DrawText
#endif

weiter helfen.

Progater

Treue Seele

Beiträge: 119

Wohnort: BW

  • Private Nachricht senden

29

31.05.2007, 23:15

Zitat

#ifdef DrawText
#undef DrawText
#endif

Ich dachte damit verhindert man das doppelte Includieren. Oder was bring es eigentlicht hier :?:
Was das W angeht, ich glaube Microsoft Visual C++ 2005 Express Edition bezeichnet alle Funktionen mit dem Zusatz W, wenn sie mit ihnen nicht klar kommt.
Das habe ich mit den MessageBoxes rausgefunden. Wenn ich 'ne MessageBox aufrufen will (ohne das W)spuckt der Compiler folgende Fehlermeldung aus:

Quellcode

1
'MessageBoxW': Konvertierung des Parameters 2 von 'const char [32]' in 'LPCWSTR' nicht möglich

Da muss ich dann das TEXT-MACRO nutzen. Aber die Funktion MessageBoxW gibt es doch garnicht. Oder irre ich mich ? ;)
To go back to the drawing board is not everyone's cup of tea! :-)

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

30

31.05.2007, 23:21

Um sowohl Unicode (wchar_t) als auch ASCII (char) zu supporten werden die betroffenen Funktionen jeweils als ...W (wchar_t) und als ...A (char) bereitgestellt. Der Funktionsname ohne W oder A existiert nicht mehr, stattdessen wird einfach nur eine Präprozessordefinition aufgelöst... deswegen macht der Compiler aus dem DrawText automatisch ein DrawTextW - wenn die Funktion aber DrawText bleiben soll (denn so heißt sie in der Tribase) dann muss man dafür sorgen, dass DrawText nicht durch DrawTextW ersetzt wird -> also die Definition aufheben.

Werbeanzeige