MFC CString zu wxString
-
Hallo
Versuche ein Projekt von mir von MFC auf wx umzustellen.
Und habe folgendes Problem.MFC Projekt:
bool CAnwendungView::arbeits_pfad_pruefen(void) { CString m_String; CString m_String2; char buf[1024]; // Verzeichnis der Anwendung ermitteln ::GetModuleFileName(AfxGetApp()->m_hInstance, buf, sizeof(buf)); m_String.Format("%s",buf); m_String = m_String.Left(m_String.ReverseFind('\\')); m_String2 = m_String.Left(m_String.ReverseFind('\\')) + "\\Anwendung"; if (m_String == m_String2) { m_beenden = false; return m_beenden; } else { AfxMessageBox("Bitte legen Sie einen Ordner mit....."); m_beenden = true; return m_beenden; } }
wxWidgets Projekt:
void AnwendungFrame::arbeits_pfad_pruefen(void) { wxString m_String; wxString m_String2; // Verzeichnis der Anwendung ermitteln m_String = wxStandardPaths::Get().GetExecutablePath(); m_String = m_String.Left(m_String.Find('\\')); // m_String2 = m_String.Left(m_String.Find('\\')) + wxT("\\Anwendung"); if (m_String == m_String2) { m_beenden = false; return m_beenden; } else { wxMessageBox( wxT("Bitte legen Sie einen Ordner mit.....")); m_beenden = true; return m_beenden; } }
Mit dem MFC Code erhalte ich den kommplette Path der Anwendung ab dem ersten Verzeichnis ('\') von Links gesehen.
Beispiel:
C:\ordner1\ordner2\Anwendungm_String = m_String.Left(m_String.ReverseFind('\\'));
Mit dem wx Code erhalte ich nur den Laufwerksbuchstaben
Beispiel:
C:m_String = m_String.Left(m_String.Find('\\'));
Kann mir einer helfen oder geht das in wxWidgets nicht so einfach?
Gruß Califax
-
Hallo
Lösung gefunden.
m_String = m_String.BeforeLast('\\');
Damit hab ich folgende gewünschte Ausgabe.
C:\ordner1\ordner2\Anwendung
Gruß Califax