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

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

11

02.07.2007, 12:12

Könnte es eventuell sein, das er versucht eine ältere laufzeitbibliothek zu linken?

Ich hab nur die zweite auflage vom buch, aber wenn ich versuche das projekt zu öffnen, kommt beim ersten mal eine meldung, das ich es konvertieren muss. dann müsste es eigentlich gehen.

Zur not musst du das Projekt selbst erstellen und die quellcodedateien etc hinzufügen. sollte eigentlich kein problem sein.


mfg,

Faule Socke

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

12

02.07.2007, 14:58

Hallo Faule Socke,

das mit der älteren Laufzeitbibliothek habe ich auch schon überlegt, denn "71" ist ja die ältere Version von MSVC++. Allerdings ist bei der 3. Auflage jedes Projekt einmal für Version 7(.)1 (ich glaube das war die 2003er-Version von MSVC++) und einmal für Version 8, also der aktuellen MSVC++ 2005er-Version - die ich auch habe - vorhanden. Ich versuche natürlich die 8er-Version zu kompilieren, deshalb erhalte ich auch keine Meldung bezüglich der Konvertierung.

Zitat

Zur not musst du das Projekt selbst erstellen und die quellcodedateien etc hinzufügen. sollte eigentlich kein problem sein.
Habe ich bereits versucht, hat aber nichts gebracht: Ich bekam erneut genau die gleiche Fehlermeldung vom Linker.

Hilfe!! :cry:

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

13

02.07.2007, 15:06

Durchsuch mal bitte alle Codedateien im Projekt nach stlport_vc71_static.lib (Gesamtes Projekt durchsuchen)

Wenn in irgendeiner Datei #pragma comment(lib, "stlport_vc71_static.lib") steht oder zumindest überhaupt der Dateiname vorkommt dann sag mal bescheid...

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

14

02.07.2007, 15:31

Hallo grek40, "stlport_vc71_static.lib" kommt im Quelltext laut Suchfunktion nicht vor.

Dieses Problem erscheint mir so seltsam! Kann es nicht sein, dass ich doch irgendetwas vergessen habe zu installieren / einzustellen? DX- (die Version von der CD) und Platform-SDK sind drauf und alle Verzeichnisse sind eingetragen (grade nochmal überprüft). :(

Was ich aber noch gemacht habe, war die Datei corewin_express.vsprops wie hier beschrieben anzupassen. Die Lib-Dateien, die da stehen (kernel32.lib, user32.lib, gdi32.lib, winspool.lib, comdlg32.lib, advapi32.lib, shell32.lib, ole32.lib, oleaut32.lib, uuid.lib) sind - zum Teil - auch per Projekteinstellungen im TriBase-Projekt eingebunden, was mir etwas eigenartig erschien. Deshalb habe ich probiert, sie aus den Projekteinstellungen herauszunehmen (damit sie nicht doppelt zum Linken angegeben sind), was jedoch nichts am Ergebnis änderte.

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

15

02.07.2007, 15:38

das ganze kommt mir extrem verdächtig vor, da eine Datei die weder im Code noch in den Projekteinstellungen eingebunden wird auch eigentlich nicht fehlen darf.

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

16

02.07.2007, 18:30

Ja, ganz deiner Meinung. So ein Problem hatte ich noch nie, und ich habe schon 'ne ganze Weile mit MSVC++ 2005 Express programmiert. Man müsste irgendwie rauszufinden versuchen, warum der Linker überhaupt versucht, mit stlport_vc71_static.lib zu linken: Liegt es vieleicht an einer Projekteinstellung? Eher unwahrscheinlich, da sie nahezu komplett dem Standard entsprechen. Aber dann MUSS es doch irgendwie am Quelltext liegen?! *verwirrt*

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

17

03.07.2007, 16:10

So, hab jetzt einfach mal alle Header- und Quelltextdateien aus dem Projekt entfernt und stattdessen nur folgende Test-Methode implementiert:

Quellcode

1
2
3
4
5
6
7
// test.h
__declspec(dllexport) int test();

// test.cpp
int test() {
    return 0;
}

Und siehe da, der Linker beschwert sich nicht mehr! Folglich hängt das Problem also in der Tat irgendwie mit dem Quelltext der TriBase-Engine zusammen! Andererseits, warum hat dann niemand anders dieses Problem? Arrrgh, ich verzweifle... =/

Wäre echt praktisch, wenn sich mal jemand zu Wort melden würde, der auch die 3. Auflage besitzt ;)

EDIT: Ich habe es jetzt auch mit der im Buch angegeben Version des Platform-SDKs versucht - Ohne Erfolg. :(

the[V]oid

Alter Hase

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

18

08.07.2007, 17:14

So... erstmal die gute Nachricht, ich habe das Problem so eben gelöst :D Die schlechte: Die Umstände der Lösung sind sehr mysteriös und ich kann sie nicht reproduzieren. Im Wesentlichen habe ich etwa folgendes gemacht, ich habe keine Ahnung, ob einige der Punkte vieleicht irrelevant sind, ich bin mir auch über die Reihenfolge der Schritte nicht ganz sicher:

  • Die Einstellung "Standardbibliotheken ignoieren" in der Debug-Konfiguration auf "ja" gesetzt und versucht zu kompilieren (gescheitert).
  • Base-Classes sowohl mit der Release- als auch der Debug-Konfiguration kompiliert. *
  • Festgestellt, dass die Release-Version sich kompilieren lässt (hier kam vorher immer die Fehlermeldung, dass die Base-Classes mit einem anderen Compiler erstellt wurden, wie hier beschrieben - Die Fehlermeldung war also eine gänzlich andere, als bei der Debug-Version).
  • Projektmappenkonfiguration "Debug" gelöscht
  • Eine neue Projektkonfiguration erstellt ("Debug2") und als Vorlage Release genommen.
  • Versucht diese zu kompilieren, was in ein paar Fehlermeldungen endete, dass irgendwelche Dateien nicht gefunden werden, habe mich nicht näher damit beschäftigt.
  • Eine neue Projektkonfiguration erstellt ("Debug") und als Vorlage Release genommen (nicht kompiliert!).
  • Mit der Datei "TriBase 2005.vcproj" aus dem TriBase-Verzeichnis der Buch-CD 'meine' Variante von "TriBase 2005.vcproj" überschrieben. **
  • Debug-Version erfolgreich kompiliert

(Falls also jemand nochmal das Problem hier haben sollte...)

*) Ich habe irgendwie das Gefühl, dass besonders dieser Punkt ausschlaggebend war.
**) Einfach nur daran gelegen haben, dass ich die Projekt-Datei nochmal kopiert habe, kann es nicht, denn das habe ich vorher schon einige Dutzend mal getan. ;)

Naja, jetzt scheint's zu funktionieren, trotzdem vielen Dank für eure Hilfe 8)

19

24.05.2008, 14:29

Hi
Dass ist mein erster beitrag :D

Naja also ich hab das gleiche Problem und kein Plan was ich machen soll.

20

24.05.2008, 15:48

Jetzt hat bei mir auch geklappt UND ich weiß auch nicht so genau warum :(
Aber ich glaub es ging nachdem ich nochma die engine und die Beispiele von der CD geholt hab.

Werbeanzeige