programa para ejecutar desde compilar como c++ winapi

para - ¿Cómo puedo obtener el nombre del archivo ejecutable de la instancia actual desde la aplicación nativa win32 C++?



mingw g++ (5)

Posible duplicado:
¿Cómo obtener el nombre del ejecutable de la aplicación en Windows (C ++ Win32 o C ++ / CLI)?

¿Cómo puedo obtener la ruta y el nombre de archivo de la instancia actual desde mi aplicación nativa win32 C ++?

Por ejemplo; si mi aplicación fuera c: / projects / testapps / getapppath.exe, podría indicar que la ruta es c: / projects / testapps / getapppath.exe


ACTUALIZACIÓN: ¡Funciona solo para aplicaciones de consola!

La ruta del programa se pasa como primer argumento, se almacena en argv[0] en la función main(argc, argv[]) .


Probado

int _tmain(int argc, _TCHAR *argv[]) { _tprintf(L"%s", argv[0]); return 0; }

Imprime ruta completa.


Puede hacerlo a través de la GetModuleFileName .

TCHAR szFileName[MAX_PATH + 1]; GetModuleFileName(NULL, szFileName, MAX_PATH + 1)



GetCurrentProcess , luego QueryFullProcessImageName

Otras respuestas son mejores para su propio proceso, es preferible para las remotas. Por los documentos :

Para recuperar el nombre del módulo del proceso actual, use la función GetModuleFileName con un identificador de módulo NULL. Esto es más eficiente que llamar a la función GetProcessImageFileName con un identificador para el proceso actual.

Para recuperar el nombre del módulo ejecutable principal para un proceso remoto en formato de ruta win32, use la función QueryFullProcessImageName.