Pessoal, 
Estou tentando executar o seguinte comando para desinstalar um software, o código fonte está assim: 
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main(int argc, char *argv[])
{
    char mess[] = "\"C:\\PROGRA~2\\Pasta1\\AUTOUP~1\\UninstallApp.exe\" {56D68699-5DDF-4376-85B2-05B3C268D743} ";
    
    char mess1[] = "\"C:\\Windows\\TEMP\\{34D596F3-A716-4A73-98A9-AC65AD2E8DE4}\\{56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall.log\"";
    
    strcat(mess,mess1);
    
    printf("%s\n",mess);
    
    system(mess);
    
    system("pause");
    return 0;
}
A montagem está correta pois se pegar a saída ali do printf e colar diretamente no terminal ele executa, já tentei com rodar o .exe com permissão de administrador ou chamando do terminal e o retorno é o mesmo: 
  
"C:\PROGRA~2\Pasta1\AUTOUP~1\UninstallApp.exe" {56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall "C:\Windows\TEMP\{34D596F3-A716-4A73-98A9-AC65AD2E8DE4}\{56D68699-5DDF-4376-85B2-05B3C268D743}Uninstall.log" A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta. Pressione qualquer tecla para continuar. . . 
  
Alguma ideia do motivo que ocorre este erro?