GDI+ Bitmap bm1(L"C:\\Test.bmp") umschreiben



  • Hallo und guten Morgen.
    Stehe Grad vor einem Problem. Und zwar muss ich ein Bitmap von der GDI+ Klasse anlegen mit dem Befehl

    Bitmap bm1(L"C:\\Test.bmp")
    

    Funktioniert auch wunderbarbis auf eins. Bei mir steht der Programmpfad in einer Variable m_strTest. D.h. ich muss das L"C:\\Test.bmp" ersetzen durch m_strTest was ich aber einfach nicht hinbekommen, weil der Parameter ein const wchar ist und ich das grosse L brauche um ihm zu sagen dass es eine Konstante ist. Hat jemand eine Idee wie ich das ummodeln könnte.

    Vielen Dank



  • Hallo!

    Falls m_strTest noch nicht den Dateinamen enthält:

    // Die "\\" nur verwenden wenn der Pfad nicht mit "\\" endet
    m_strTest += _T("\\Test.bmp");
    

    Ich gehe jetzt mal davon aus, dass m_strTest ein CString Objekt ist.

    // Für CString-Objekt
    Bitmap bmp(m_strTest.GetString());
    // Für std::(w)string-Objekt
    Bitmap bmp(m_strTest.c_str());
    

    Das sollte Dir weiterhelfen.



  • Hi,

    ja hilft mir auf jedenfall schonmal weiter. Jetzt ist nur das Problem, dass ich ein const wchar brauche.

    Meldung:

    Konvertierung des Parameters 1 von 'const char *' in 'const WCHAR *' nicht möglich

    Hast dafür auch noch ne Idee ?



  • Hallo!

    pmb schrieb:

    Konvertierung des Parameters 1 von 'const char *' in 'const WCHAR *' nicht möglich
    Hast dafür auch noch ne Idee ?

    Zum Einen - was zu empfehlen wäre - könntest Du als "Character Set" Unicode wählen, zum Anderen könntest Du die ATL zur Hilfe nehmen. Genauer gesagt CA2WEX

    Bitmap bmp(CA2W(m_strTest.GetString()));
    


  • Hi!

    Ich mache das so:

    void ImageOpen()
    {
    	static char szFilter[]="Alle Dateien (*.*)|*.*||";
    	CFileDialog dlgFile(TRUE, "*.JPG", this->m_filename, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
    
    	//Dateiauswahl aufrufen
    	if(dlgFile.DoModal() == IDOK) {
    		//Datei wurde mit OK ausgewählt, Pfad speichern
    		this->m_filename = dlgFile.GetPathName();
    		Gdiplus::Bitmap gdibmp(this->m_filename.AllocSysString());
    	}
    }
    

    Die Methode AllocSysString() von CString gibt dir genau das zurück, was der Konstruktur des GDI+ Bitmaps braucht.

    Gruß



  • Danke, hat alles wunderbargeklappt.
    Hab die Lösung von HaJo verwendet
    Gruss


Anmelden zum Antworten