RadStudio 2009 Unicode-Dateinamen bei Drag'n'Drop



  • Hallo,

    ich würde gerne Datei- und Verzeichnisnamen per Drag'n'Drop in eine TMemo hinzufügen, jedoch bekomme ich statt den Unicode-Zeichen immer Fragezeichen. Auch bei ShowMessage kommen nur Fragezeichen.
    Die TMemo und Showmessage direkt mit Unicode zu beschicken funktioniert ohne Probleme, nur bei der Übergabe der Dateinamen hakt es.

    Derzeit mache ich das mit folgendem Code, welcher für ASCII funktioniert:

    void __fastcall TForm1::WMDropFiles(TWMDropFiles &Message)
    {
    	int ilFilesCount, ilStrLength;
    	char caFileName[MAX_PATH];
    
    	// determine # of files:
    	ilFilesCount=DragQueryFile((HDROP)Message.Drop,-1,NULL,0);
    	for(int ilIndex=0; ilIndex<ilFilesCount; ilIndex++)
    	{
    		// determine length of filename:
    		ilStrLength=DragQueryFile((HDROP)Message.Drop,ilIndex,NULL,0);
    		// Dateinamen in char-Array caFileName übernehmen:
    		DragQueryFile((HDROP)Message.Drop, ilIndex, caFileName, ilStrLength+1);
    		AnsiString xx= caFileName;
    		ShowMEssage(xx);  //<<-- Hier kommt an die Stelle wo ein Unicodezeichen steht ein Fragezeichen in der Messagebox.
    		Form1->Memo1->Lines->Add("Checking filetype of "+ExtractFileName(xx));  //<--- Hier genauso 
    		//[..arbeit arbeit]
    
    	}
    
    }
    

    Ich _glaube_, dass bei Unicode keine chars, sondern wchar_t zum Einsatz kommen, aber sicher bin ich mir da nicht.

    Kann mir jemand weiterhelfen?

    viele Grüße,
    bul



  • AnsiString xx= caFileName;
    

    Was glaubst du wohl was hier mit Unicode passiert? Versuchs mal mit UnicodeString oder gleich mit String.


Anmelden zum Antworten