Obtener el directorio de Windows
Hay una función del api de Windows que nos permite obtener en una cadena con el directorio de Windows activo, el api como tal se llama GetWindosDirectory y para usarla hay que agregarle ciertos parametros:
UINT WINAPI GetWindowsDirectory( __out LPTSTR lpBuffer, __in UINT uSize );
Primero una variable tipo array de caracteres que permita guardar el resultado, y el segundo parametro es la limitación de la cadena obtenida por así decirlo. Veamos un ejemplo:
#include<stdio.h>
#include<windows.h>
int main() {
char Directorio[255];
GetWindowsDirectory(Directorio,255);
MessageBox(0,Directorio,"Directorio de Windows",MB_OK);
}
Claramente primero se debe declarar la librería de Windows ( windows.h) luego declaramos el api y como está en el ejemplo anterior si lo ejecutamos podremos ver el directorio de Windows actual.
Un tip interesante es que en el segundo parametro del api en vez de poner directamente un entero podemos poner el “MAX_PATH” que es algo así como un buffer de memoria de almacenamiento cuyo equivalente es 256; Veamos un ejemplo:
GetWindowsDirectory(Directorio,MAX_PATH);
Haciendo esto podemos optimizar un poco más el código.
Enlace: Uso del API según MSDN de Microsoft