Gefehler in Mystic's code
-
Ich wollte auch mehr sprachen in mein Programm anlegen.Darum habe ich das codebespiel von MysticEmpires genommen :
CString strPath = CString( GetCommandLine()).Left( CString(GetCommandLine()).ReverseFind('\\')); strcat(strPath, "\\translation.ini"); CStdioFile File; CString m_1; CString m_2; CString m_3; CString m_4; if(File.Open(strPath,CFile::modeRead,NULL) ) { File.ReadString(m_1); File.ReadString(m_2); File.ReadString(m_3); File.ReadString(m_4); File.Close(); GetDlgItem(IDC_RADIO_CS)->SetWindowText(m_1); GetDlgItem(IDC_RADIO_HL)->SetWindowText(m_2); GetDlgItem(IDOK)->SetWindowText(m_3); GetDlgItem(IDCANCEL)->SetWindowText(m_4); }
Aber leider bekomme ich eine fehlermeldung:
strcat' : Konvertierung des Parameters 1 von 'class CString' in 'char *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
-
Ähm, vielleicht ist ein CString nicht direkt in einen char* konvertierbar. Ein std::string lässt sich z.b. durch die Methode c_str() in einen char* umwandeln. Schau bei CString nach einem Äquivalent dafür.
Aber selbst wenn eine direkte konvertierung in char* eingebaut wurde, beruht sie sicherlich auf const char*. Der erste Parameter von strcat() muss allerdings veränderbar sein.
Dir bleibt nichts anderes übrig, als strcat() für CString zu implementieren.
MfG SideWinder
-
hört sich blöd an aber was genau muss ich machen.
-
SideWinder was laberst du da wieder... ne ne ne keine Ahnung von MFC
Das geht doch ganz einfach:
statt
strcat(strPath,"\\translation.ini");
Nimmst du das :
strpath += "\\translation.ini";
CString ist ja schließlich eine Stringklasse...
Devil