TCHAR Argumente nur als Sonderzeichen



  • hallo,

    ich hab ein Programm das mit Unicode und den TCHAR arbeitet und die argumente auch als TCHAR empfängt, leider scheinen die von Außen angegebenen Argumente aber nur als Datenmüll im Programm anzukommen, ich seh nur irgendwelche Kästenchen, wenn ich mir das ganze mal ine inem PopUp-Messagebox-Fenster ausgeben lassen

    int main(int argc, TCHAR* argv[])
    {
    
    	/*argc = 4;
    	argv[1] = L"C://temp//source.doc";
    	argv[2] = L"C://temp//target.doc";
    	argv[3] = L"Ich bin der Text";*/
    
    	if (argc != 4)
    	{
    		MessageBox(NULL, L"Anzahl übergebener Parameter\nist falsch!\nParm 1: Pfad Quelldokument\nParm 2: Pfad Zieldokument\nParm 3: Neuer Titel des Zieldokument", L"Fehler bei Aufruf", MB_OK | MB_ICONEXCLAMATION);
    		return ERROR_ARGCOUNT;
    	}
    
    	//Prüfen ob Quelldatei existiert
    	std::wifstream file(argv[1]);
    	if(!file)
    	{
    		std::wstring arg1 = argv[1];
    		TCHAR buffer[100] = {0};
    		wsprintf(buffer,L"Quelldatei:\n%s\nnicht gefunden", arg1.c_str());
    		MessageBox(NULL, buffer, L"Fehler", MB_OK | MB_ICONEXCLAMATION);
    		return ERR_SOURCE_FILE_DONT_EXIST;
    	}
    
    	//Prüfen ob Quelldatei existiert
    
    	return 0;
    }
    

    Der Inhalt von argv[1] ist absoluter Datenmüll, der von den anderen übergebenen Parametern auch, was muss ich machen, damit ich den übergebenen Textstring krieg? ich verstehs eifnahc nicht....



  • quasek schrieb:

    ich hab ein Programm das mit Unicode und den TCHAR arbeitet und die argumente auch als TCHAR empfängt

    Dein Programm "empfängt" nicht plötzlich auf magische Weise die Kommandozeilenparameter als TCHAR, nur weil du den Typ von argv änderst.

    Benutz _tmain.


Log in to reply