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\Anwendung

    m_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


Anmelden zum Antworten