Update von alten Visual Studio Projekten.
-
Das klingt irgendwie danach, dass du nicht so ganz den Standard befolgt hast.. Da könntest du allenfalls wieder schauen ob du die Einstellung wieder findest um es zu aktivieren.
Update kannst du sonst indem du einfach ein neues Projekt in VS10 machst und dann die ganzen Files neu einbindest. Abhängigkeiten musst du natürlich auch neu einstellen.
btw: Ich habe immer mal wieder ein altes Projekt so konvertiert und nie ein Problem gehabt. Hat immer wunderbar funktioniert.
-
Selbst schuld, wenn du nicht standardkonform programmierst. Ich gönne dir, dass du damit nun auf die Fresse fällst

-
Es war eben nicht immer der Standard.
Wie gesagt ist das Projekt schon Jahre alt.Gar nicht. Bzw. du musst das selbst machen, automatisch geht das nicht.
Das ist mir ja bewusst.
Aber wie gehe ich da vor ?
Einfach das neue SDK runterladen und die Dateien ersetzen, kompilieren und dann die Fehler beheben ?Das Problem ist halt nicht die Sache mit den Schleifen, sondern es gibt eine Menge an Fehlern die vorher eben nicht da waren und wozu ich keine Lösung finde:
Fehler 90 error LNK2001: Nicht aufgelöstes externes Symbol "__check_commonlanguageruntime_version". C:\Projekt0-1\Source\CoreServer\ffl_dumpr.lib(ffl_module_info.obj) CoreServer
Der Debug build funktioniert allerdings.
Danke für die Antworten!
-
Carlyle schrieb:
Es war eben nicht immer der Standard.
Wie gesagt ist das Projekt schon Jahre alt.Ohne schon wirklich lange dabei zu sein, ich denke Scopes haben seit den frühesten Tagen von C immer gleich funktioniert.
Carlyle schrieb:
Aber wie gehe ich da vor ?
Einfach das neue SDK runterladen und die Dateien ersetzen, kompilieren und dann die Fehler beheben ?Nein. Ich weiß nicht genau wie du dein DX9 Projekt aufgebaut hast, aber vermutlich musst du einen Großteil deines Grafikmanagements umbauen und an VBO's/Shader etc. anpassen. Falls du das alles eh schon genutzt hast, musst du wohl tatsächlich nur ein paar Dinge ändern.
Carlyle schrieb:
Fehler 90 error LNK2001: Nicht aufgelöstes externes Symbol "__check_commonlanguageruntime_version". C:\Projekt0-1\Source\CoreServer\ffl_dumpr.lib(ffl_module_info.obj) CoreServer
Hm. Versuchst du irgendwie eine alte .lib zu linken oder so? Oder linkst du nicht alle nötigen libs mit?
-
Der Compiler kann die dll (ffl_dumpr.lib) nicht einbinden da diese nur für MFC 7.1 erstellt worden ist.
Konnte diesen Fehler nun beheben.Eure Antworten haben mir sehr geholfen, ich danke euch!
-
Hallo Carlyle,
bzgl. der for-Schleife gibt es die Compileroption /Zc:forScope
Um jedoch möglichst standardkonform zu sein, solltest du /Ze deaktivieren, d.h. /Za verwenden.
-
Th69 schrieb:
Um jedoch möglichst standardkonform zu sein, solltest du /Ze deaktivieren, d.h. /Za verwenden.
-
cooky451 schrieb:
Carlyle schrieb:
Es war eben nicht immer der Standard.
Wie gesagt ist das Projekt schon Jahre alt.Ohne schon wirklich lange dabei zu sein, ich denke Scopes haben seit den frühesten Tagen von C immer gleich funktioniert.
Nene, als VC6-Veteran kann ich dir von Zeiten erzählen, als die in for-Schleifenköpfen definierten Variablen weitergelebt haben. Das waren noch Zeiten...
for(int i = 0; i < 10; ++i); for(int i = 0; i < 10; ++i); // Fehler: Mehrfachdefinition von i
-
Compilerbugs haben nichts mit Standard zu tun.
-
SG1 schrieb:
Compilerbugs haben nichts mit Standard zu tun.
Aber mit "funktionieren", worum es im von Michael zitierten Text ging.
-
Bzw. hat er das Spiel nicht geschrieben es ist der Source Code von Flyff, er versucht sich nur Informationen zusammen zu suchen wie er einen Vorteil gegenüber den anderen bekommt!
-
Miriiam schrieb:
Bzw. hat er das Spiel nicht geschrieben es ist der Source Code von Flyff, er versucht sich nur Informationen zusammen zu suchen wie er einen Vorteil gegenüber den anderen bekommt!
Genau, dann kann der Sack Flyff mit DirectX 11 spielen - da werden die anderen aber gucken.

-
Carlyle schrieb:
...Visual C++ 2003...
Bist du dir wirklich sicher das es 2003 war?
Carlyle schrieb:
Benutzt man zum Beispiel eine Variable, die in einer For-Schleife erstellt worden ist, an einer andernen Stelle wieder so findet er diese nicht da die Variable nur für die Schleife zählt.
Dies deutet wirklich auf VS6 hin (Ich dachte persönlich das dieser Fehler mit 2002 [der ersten Version nach 6] behoben war).
Carlyle schrieb:
...Es war eben nicht immer der Standard...
Der erste C++ Standard ist von 1998 und auch da war dieses Schleifenverhalten bereits Standard.
Konform zu dem C++ Standard kannst du aber alleine dadurch erreichen, in dem du die Variable vor die Schleife ziehst:
for(int a=0; a<10; ++a) // => int a=0; // Falls du wirklich das verhalten haben willst - vollkommen Standardkonform for(; a<10; ++a)
-
asc schrieb:
Carlyle schrieb:
...Visual C++ 2003...
Bist du dir wirklich sicher das es 2003 war?
Ist es, ich habe das besagte Projekt selbst auf VS10 portiert. Das Schleifenproblem tritt da an unzähligen Stellen auf. Aber auch sonst taugt das ganze nichts. Unglaublich schlechtes C mit Klassen voller Fehler. Es wäre wahrscheinlich leichter so ein Spiel neu zu schreiben als diesen Mist vernünftig zu verbessern.
-
TyRoXx schrieb:
asc schrieb:
Carlyle schrieb:
...Visual C++ 2003...
Bist du dir wirklich sicher das es 2003 war?
Ist es
Bei VS2003 gabs noch nen Schalter, um das besagte Verhalten vom VC6 einzuschalten. Aber standardmäßig hat der VS2003 den Scope bei for-Schleifen richtig gesetzt.