Programación General > C++ Builder

 Cómo Manejo El Path Actual?

(1/1)

dfaba:
Hola, mi problema es el siguiente:

   al añadir un archivo de ayuda para mi aplicación, Builder me genera el siguente
código:


--- Código: Text ---try        {                 Application->Initialize();                 Application->Title = "Verificador de iMelody";[B]                 Application->HelpFile = "verificador.hlp";[/B]                 Application->Run();        }        catch (Exception &exception)        {                 Application->ShowException(&exception);        }        return 0; Esto funciona correctamente hasta que desde la aplicación cambio el directorio actual al buscar un fichero para abrir con un OpenDialog; entonces ya no me encuentra el archivo verificador.hlp. ¿Cómo puedo solucionarlo?

Eternal Idol:
O en GetOpenFileName() le pasas OFN_NOCHANGEDIR como flag así no te cambia de directorio o utlizas el path completo del ejecutable para el archivo de ayuda.

Por ejemplo:

char *help_file = (char*)malloc(2048);
ZeroMemory(help_file,2048);
GetCurrentDirectory(help_file,2000);
strcat(help_file,"\\verificador.hlp");
try
       {
                Application->Initialize();
                Application->Title = "Verificador de iMelody";
                Application->HelpFile = help_file;
                Application->Run();
       }
       catch (Exception &exception)
       {
                Application->ShowException(&exception);
       }
       free(help_file);
       return 0;

dfaba:
Olé, muchas gracias!!

La segunda forma me va de fenómenos, no sabía que existía la función
GetCurrentDirectory, y estaba probando con funciones de C estándar,
como getcurdir(), así mucho mejor; gracias de nuevo!

Eternal Idol:
Esa una función de la API de Windows, si estas haciendo un programa con Borland Builder que unicamente va a correr bajo Windows te recomiendo siempre usar la API directamente y no funciones de C.

 :comp:  :ph34r:

Navegación

[0] Índice de Mensajes

Ir a la versión completa