Error C2582
-
Hallo!
Ich hab mal wieder ein Problem.
Ich habe folgendes in den Code eingefügt.
Die betreffenden KLassen habe ich angelegt:void CDeepAnalyzerDlg::OnInitRoutines()
{CString mxfDump = RunMXFDump("mxfdump.exe -l %s");
m_TabDump.m_FileTitle = m_InputTitle;
m_TabDump.ShowDump(mxfDump);m_TabKeys.m_File = m_InputFile;
m_TabKeys.ShowKeys(mxfDump);m_TabHeaders.m_Input = m_InputFile;
m_TabHeaders.SeparateHeaderData(mxfDump);m_TabAnalyze.m_FilePath = m_InputFile;
m_TabAnalyze.CreateXMLFile();m_TabHex.m_data = m_InputFile;
m_TabHex.ShowHex(mxfDump);mxfDump.Empty();
m_TabMain.ActivateSSLPage (1);
}In der Zeile m_TabHex..... gibt mir der Compiler den Error C2528 aus und beschwert sich darüber, dass der = Operator in der KLasse TabHex KLasse nicht verfügbar sei.('CByteArray' : 'Operator =' ist nicht verfuegbar)
Ich habe zwar schon über diesen Feheler nachgelesen und das man den Operator in der KLasse deklarieren kann, aber wie habe ich nicht verstanden.
Warum kann ich denn bei den anderen Klassen das = benutzen die sind doch von den selben Basisklassenabgeleitet.
Kann mir bitte jemand helfen?LG Michi
-
Wenn du nichts anderes angibst, definiert der Compiler den Zuweisungs-Operator für dich. In deinem Beispiel hast du aber eine Klasse verwendet (CByteArray), die den Zuweisungsoperator gesperrt hat - und damit nicht mehr zugewiesen werden kann.
(btw, wenn du dir die Meldung genau ansiehst, beschwert sich der Compiler nicht über die CTabHex, sondern über die CByteArray ;))
-
Danke für die Antwort!!!
Nur die Variable m_data ist vom Typ CByteArray eine Klasse die so heißt hab ich meines Wissens gar nicht dabei. Ich habe Testweise eine andere Variable verwendet aber dann kommt der Fehler: error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class CString' akzeptiert (oder keine geeignete Konvertierung moeglich)...ich weiß gerade gar nicht was ich machen soll
-
michi81 schrieb:
Nur die Variable m_data ist vom Typ CByteArray eine Klasse die so heißt hab ich meines Wissens gar nicht dabei.
Du hast doch die (Member)Variable selber angelegt, da mußt du doch wissen, welchen Typ du ihr gegeben hast (CByteArray ist ein Typ, den die MFC mitgeliefert hat).
-
Das Problem ist, dass ich nur an einem Vorhanden Projekt weiter arbeite.
Ich binde einen Opensource Quellcode in dieses Projekt ein.
Daher habe ich die Variable auch nicht selbst angelegt, sondern sie ist aus dem OpenSource Code.
Ich benötige die Variable da in diese die zu öffnende Datei eingelesen werden soll......Achje ich bin halt echt nicht so der Programmierer und weiß einfach nicht mit einem solchen Problem umzugehen.LG