Esa estructura, como tal, te va a dar error... el tipo char* no es una clase de C++, por lo que no dispone de operadores sobrecargados que permitan hacer operaciones sobre este tipo de elementos.
Tienes dos opciones:
1. Usas funciones de C para manipular strings:
Código C++:
Ver originalchar ruta[1000];
ShellExecute(GetDesktopWindow(),"open",ruta, NULL, NULL, SW_SHOWNORMAL);
2. Usas un string de C++. En este caso no olvides que la función ShellExecute no espera recibir un std::string, sino un char*
Código C++:
Ver original// opcion 1:
std::ostringstream os;
os << "C:\\ " << e << ".pdf";
std::string ruta = os.str( );
ShellExecute(GetDesktopWindow(),"open",ruta.c_str(), NULL, NULL, SW_SHOWNORMAL);
// opcion 2:
std::string ruta = "C:\\"; // No podemos concatenar char* directamente
// No estamos concatenando char*
// sino (string + char*) + char* => string + char* => string
ruta = ruta + e + ".pdf";
ShellExecute(GetDesktopWindow(),"open",ruta.c_str(), NULL, NULL, SW_SHOWNORMAL);
Un saludo