SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Zuzunaga en Sábado 2 de Diciembre de 2006, 14:58

Título: Ejecutable Que Se Copie Asi Mismo
Publicado por: Zuzunaga en Sábado 2 de Diciembre de 2006, 14:58
¿Como hago para hacer que un ejecutable se copie asi mismo sin importar que le cambies el nombre,porq para para el manejo de archivos en C ,requiere un nombre fijo!!!RAYOS!!! y es un problrma cuando le cambias el nombre al ejecutable.? :angry:
Título: Re: Ejecutable Que Se Copie Asi Mismo
Publicado por: Geo en Sábado 2 de Diciembre de 2006, 15:57
El nombre del ejecutable lo puedes obtener de la línea de comandos:

Código: Text
  1.  
  2. int main( int argc, char* argv[] ) {
  3.   for ( int i = 0; i < argc; i++ ) {
  4.     cout << argv[ i ] << endl;
  5.   }
  6.  
  7.   return 0;
  8. }
  9.  
  10.  

En argv[ 0 ] siempre tienes la ruta completa del ejecutable, si sólo quieres el nombre del ejecutable recorrerías hacia atrás hasta encontrar el primer indicador de directorio/carpeta (\ en Windows, / en otros como Linux/Unix).

Si trabajas en Windows, la función GetCommandLine te devuelve la línea de comandos y de allí podrías extraer el nombre del ejecutable, aunque creo que debe existir una función en la API de Windows que ya haga lo que quieres :).

Saludos,
JJ (Geo).
Título: Re: Ejecutable Que Se Copie Asi Mismo
Publicado por: Eternal Idol en Sábado 2 de Diciembre de 2006, 17:52
Si es para consola en Windows con argc y argv va perfecto, de otra manera junto a GetCommandLine, como bien dice Geo, podes usar CommandLineToArgvW para conseguir argc y argv (en Unicode):

http://msdn2.microsoft.com/en-us/library/ms647232.aspx (http://msdn2.microsoft.com/en-us/library/ms647232.aspx)