Ver Mensaje Individual
  #7 (permalink)  
Antiguo 01/09/2015, 00:54
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Abrir archivo pdf.

Código C++:
Ver original
  1. "C:\\"+e+".pdf"

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 original
  1. char ruta[1000];
  2. sprintf( ruta, "C:\\%s.pdf", e );
  3. 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
  1. // opcion 1:
  2. std::ostringstream os;
  3. os << "C:\\ " << e << ".pdf";
  4. std::string ruta = os.str( );
  5. ShellExecute(GetDesktopWindow(),"open",ruta.c_str(), NULL, NULL, SW_SHOWNORMAL);
  6.  
  7. // opcion 2:
  8. std::string ruta = "C:\\"; // No podemos concatenar char* directamente
  9. // No estamos concatenando char*
  10. // sino (string + char*) + char* => string + char* => string
  11. ruta = ruta + e + ".pdf";
  12. ShellExecute(GetDesktopWindow(),"open",ruta.c_str(), NULL, NULL, SW_SHOWNORMAL);

Un saludo