[VC6] Fehler C2061 NUR bei Release
-
Hallo Zusammen,
hab hier grad was ganz seltsames. Bekomme den Fehler C2061 (Syntaxfehler: Der Compiler hat einen Bezeichner an einer Stelle gefunden, an der eigentlich keiner sein sollte.) NUR wenn ich das Projekt in Release übersetze. Der Fehler tritt in einer header bei einer Funktionsdefinition bei einer von mir erstellen Klasse auf. Der include zur header der entsprechenden Klasse ist da, die Datei auch. Debug is kein Problem.
Ich verstehe nicht warum das nur im Release aufritt. Die Projekteinstellungen hab ich mir schon zur zur Brust genommen und auch schon ettliche cleans gemacht. Aber nix bringt was bzw. Unterschiede finde ich nicht.
Der Vollständigkeit halber:
Es handelt sich um ein älteres Projekt das schon ohne Probleme im Einsatz ist. Release Compilierung war noch nie ein Problem. Allerdings hab ich das Ding grad anständig aufgebohrt und noch einige Features hinzu gebaut. Vllt doch die Projekteinstellungen?Hat jmd einen Tip?
m.
-
gibt es bedingte kompilierung mit #defines?
-
Meinst du mit 'bedingter Kompilierung' was ähnliches wie:
#ifdef _BLUBLUB #include "bla.h" #elseif #include "blub.h" #endif
bezogen auf den Präprozessor nur mit Kompilierung (keine Ahnung wie das geht...)? Wenn du das meinst, dann hab ich sowas ned verbaut. Wie gesagt, die Projekteinstellungen sind, bis auf die üblichen Debug/Release-Unterschiede, gleich (zumindest 100% der Präprozessor, vllt überseh ich auch was zum 100sten mal).
m.
-
poste doch mal den relevanten code.
-
Relevanter Code ist schwierig.... V.a. da es in einer header ist ist's eher nicht relevant meiner Ansicht nach. Aber auf 'nen Versuch kommt's an:
#include "StdAfx.h" #include "Buffer.h" ///< class CBuffer class CLog { public: CLog(); virtual ~CLog(); void LogBufferA ( std::string a_str, CBuffer* a_buffer ); // error C2061: Syntaxfehler : Bezeichner 'CBuffer' void LogBufferB ( std::string a_str, CBuffer* a_buffer ); // error C2061: Syntaxfehler : Bezeichner 'CBuffer' private: __int64 m_member; ///< some member };
Das ist die Essenz aus dem ganzen. Hilft das?
m.
-
nimm das
#include "Buffer.h"
raus und füge ein
class CBuffer;
ein
-
Jetz schlägts 13...es funzt.
Recht herzlichen Dank erstmal!
Aber:
Der Unterschied zw 'include' u Forwärtsdeklaration ist mir bewusst. Aber was hat das mit Release u Debug zu tun? Kann des einer bildhaft erklären?m.