Je veux obtenir le dossier système dans Windows, en lisant SystemRoot. Comment puis-je le faire? merci beaucoup!Comment lire à partir de Windows dans C++
Répondre
Il y a une API de Windows, vous devez utiliser: GetWindowsDirectory
Mais si vous ne voulez lire de l'environnement, vous pouvez utiliser GetEnvironmentVariable ou de l'exécution C avec getenv ou même obtenir le pointeur de l'environnement de la troisième non-officiel argument principal int main(argc, argv, envp)
qui est pris en charge par le moteur d'exécution VC.
Cela devrait être assez facile avec GetEnvironmentVariable():
DWORD WINAPI GetEnvironmentVariable(
__in_opt LPCTSTR lpName,
__out_opt LPTSTR lpBuffer,
__in DWORD nSize
);
Voir MSDN sur GetEnvironmentVariable() pour plus d'infos et quelques exemples (la fonction est utilisée dans l'exemple 2)
Si vous voulez lire la variables d'environnement, utilisez getenv ou GetEnvironmentVariable.
Cependant, si vous voulez trouver le répertoire %SYSTEMROOT%
envisager d'utiliser GetWindowsFolder
Pour d'autres dossiers spéciaux, vous pouvez utiliser SHGetKnownFolderPath ou SHGetFolderPath
+1 pour une bonne réponse et 3ème argument de la Microsoft Main 'extension - c'est toujours agréable d'apprendre quelque chose de nouveau. –
Ce n'est pas seulement Microsoft - à peu près tout a envp. GNU Make s'en remet même à ça et c'est supposé fonctionner à l'improviste partout. Le seul système que j'ai jamais vu sans Interix 2 (3+ l'a bien vu) et il y a une exception dans GNU Make pour AmigaOS aussi je pense. – Rup