jokey2
Erfahrenes Mitglied
Hallo Gemeinde!
Ich will in meinem Visual C++ (VS6) eine DLL schreiben, die nicht MFC verwendet, sondern nur STL und Standard C++ - Komponenten. Dazu habe ich u.A. folgende Klassen geschrieben:
und
Beim Kompilieren bringt er mir dann folgende Fehler:
Kann mir jemand sagen, was ich machen muß, daß das auch im VS korrekt funktioniert? Für ein paar Tips wäre ich sehr dankbar!
Ich will in meinem Visual C++ (VS6) eine DLL schreiben, die nicht MFC verwendet, sondern nur STL und Standard C++ - Komponenten. Dazu habe ich u.A. folgende Klassen geschrieben:
Code:
class CDefineList : protected list<CDefine>
{
public:
CDefineList();
virtual ~CDefineList();
};
Code:
class CDefine
{
public:
CDefine(string strMacro, string strValue);
CDefine(CDefine &in);
virtual ~CDefine();
CDefine & operator =(CDefine &in);
protected:
list<string> m_listParameters;
string m_strName;
string m_strValue;
};
Und das, obwohl ich sowohl einen Kopierkonstruktor als auch einen Zuweisungsoperator angelegt habe (Ja, die Funktionsdefinitionen sind im .cpp vorhanden). Wenn ich den gleichen Code im Dev-C++ kompiliere, geht alles ohne Probleme.c:\program files\microsoft visual studio\vc98\include\xmemory(34) : error C2558: class 'CDefine' : Kein Kopierkonstruktor verfuegbar
c:\program files\microsoft visual studio\vc98\include\xmemory(66) : Siehe Verweis auf Instantiierung der kompilierten Funktionsvorlage 'void __cdecl std::_Construct(class CDefine *,const class CDefine &)'
c:\program files\microsoft visual studio\vc98\include\list(161) : error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'const class CDefine' akzeptiert (oder keine geeignete Konvertierung moeglich)
c:\program files\microsoft visual studio\vc98\include\list(155) : Bei der Kompilierung der Member-Funktion 'class std::list<class CDefine,class std::allocator<class CDefine> > &__thiscall std::list<class CDefine,class std::allocator<class CDefine> >:perator =(const class std::list<class CDefine,class std::allocator<class CDefine> > &)' der Klassenvorlage
Kann mir jemand sagen, was ich machen muß, daß das auch im VS korrekt funktioniert? Für ein paar Tips wäre ich sehr dankbar!