Error C2146 & C2501 (Konvertierung von VC98 nach C++.net)
-
Hallo!
Ich hoffe, ich bin hier richtig!
Ich bin neu hier und grüße erstmal alle ganz herzlich!Nun zu meinem (großen) Problem:
Ich habe ein Projekt, das von der Version VC98 nach C++.Net konvertiert werden soll. Es handelt sich um eine Dll namens stimedll. Das Projekt läßt sich einwandfrei und fehlerfrei unter VC98 kompilieren, jedoch unter c++.net erhalte ich fortlaufend folgende Fehler:
****************************
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\utility(81) : warning C4346: '_It::iterator_category': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\utility(84): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'std::iterator_traits<_It>'
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\utility(81) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'iterator_category'
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\utility(81) : error C2501: 'std::iterator_traits<_It>::iterator_category': Fehlende Speicherklasse oder Typspezifizierer(...)
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(27) : warning C4346: '_A::pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(27) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'pointer'
c:\Programme\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(27) : error C2501: 'std::basic_string<_E,_Tr,_A>::pointer': Fehlende Speicherklasse oder Typspezifizierer(...)
stimedll - 29 Fehler, 16 Warnung(en)****************************
Woher könnte dieser Fehler herrühren? Ich habe schon etliches versucht, aber ohne Erfolg. Im Internet war leider auch nischt zu finden. Ich muß zugeben, ich bin Anfänger und hoffe, daß mir die "Experten" in diesem Forum helfen können!
Gruß
mute
-
Mit diesen Informationen kann Dir kein Mensch helfen.
Zumindest handelt es sich wohl um ein Problem in Bezuf auf die STL und die wesentlich genauere und bessere Prüfung des Codes beim VC7.
Damit Dir jemand weiterhelfen kann mußt Du außer Fehlern auch Code zeigen!
Aber bitte _nicht_ die Zeilen, die angemeckert wurden.
Du mußt Dir ansehen, was z.B. in Zeile 81 von utility steht und dann den Punkt suchen, wo das entsprechende Template im Quellcode aufgerufen wird. Diese Zeile (+ - 10 Zeilen davor und danach) solltest Du dann noch mal posten... evtl. wird es daraus ersichtlich.
Grundsätzlich ist es so, daß der VC6 (und auch VC5) falschen Code (bzw. falsche Verwendung von Templates) gerne geschluckt hat - wahrscheinlich bist Du über genau sowas gestolpert.