C/Visual C - Gracias, pero es un ejecutable de Windows

 
Vista:

Gracias, pero es un ejecutable de Windows

Publicado por MaC (12 intervenciones) el 01/09/2001 04:21:32
Gracias por tu pronta respuesta, pero no me es útil porque no lo puedo usar en windows ESO CREO (corrígeme si no es así), por lo cual, te pido me aconsejes nuevamente. Desde ya, os agradezco mucho
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener la ruta del programa en ejecución en Windows

Publicado por Alejandro (980 intervenciones) el 11/10/2024 22:23:19
Mac, para obtener la ruta del directorio donde se está ejecutando tu programa en Windows, puedes usar la API de Windows. Aquí tienes un ejemplo en C++ que muestra cómo hacerlo:

Código en C++



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <windows.h>
 
int main() {
    char path[MAX_PATH];
 
    // Obtener la ruta del ejecutable
    GetModuleFileNameA(NULL, path, sizeof(path));
 
    // Mostrar la ruta completa
    std::cout << "La ruta del programa es: " << path << std::endl;
 
    // Extraer solo el directorio
    std::string directory(path);
    size_t pos = directory.find_last_of("\\/");
    if (pos != std::string::npos) {
        directory = directory.substr(0, pos);
    }
 
    std::cout << "El directorio del programa es: " << directory << std::endl;
 
    return 0;
}

Explicación del código



1. GetModuleFileNameA: Esta función obtiene la ruta completa del ejecutable que se está ejecutando. El primer parámetro es `NULL`, lo que indica que queremos la ruta del módulo que contiene el código de la aplicación actual.

2. MAX_PATH: Es una constante que define la longitud máxima de la ruta en Windows.

3. Extracción del directorio: Después de obtener la ruta completa, se utiliza `find_last_of` para encontrar la última barra invertida (`\`) y se extrae el directorio.

Compilación y ejecución



Para compilar y ejecutar el código, puedes usar un compilador como `g++` o Visual Studio. Si usas `g++`, el comando sería:

1
2
g++ -o obtener_ruta obtener_ruta.cpp
./obtener_ruta

Notas



- Este código es específico para Windows y utiliza la API de Windows, por lo que no funcionará en otros sistemas operativos.
- Asegúrate de tener los permisos necesarios para ejecutar el programa en la máquina donde lo copies.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar