Problem mit CreateProcess



  • Hallo,

    ich will eine Anwendung über CreateProcess starten. Leider gibt es hierbei Probleme.

    Hier mein Quellcode:

    int CFileUpdater::UnpackArchive(CString File, CString Filepath, CString Programpath)
    {
    	STARTUPINFO si;
    	PROCESS_INFORMATION pi;	
    	CString CommandLine;	
    
    	CommandLine.Format("%s\\Update\\7z.exe", Programpath);
    
    	if(CreateProcess(NULL, CommandLine, NULL, NULL, false, 0, NULL, NULL, &si, &pi))
    	{
    		MessageBox("7z.exe started", 0, MB_OK);
    	}
    	else MessageBox("7z.exe error", 0, MB_OK);
    

    Nur leider meckert er immer rum, dass er keinen CString in LPSTR umwandeln kann. Was kann ich da machen?

    Gruß
    Flo



  • http://msdn.microsoft.com/en-us/library/aa314880(VS.60).aspx

    Benutze GetBuffer(..), und ReleaseBuffer(..) nicht vergessen.

    Simon



  • Danke Simon, das funktioniert jetzt soweit 🙂 Nur läuft das Programm immer durch die else-Bedingung. Hab ich bei CreateProcess() irgendwas falsch gemacht?



  • Benutzte GetLastError(..) und Du wirst erfahren was falsch ist.
    Ausserdem solltest Du die Handles in PROCESS_INFORMATION schliessen.



  • Ok habe ich gemacht, funktioniert jetzt, danke !


Log in to reply