I have an issue with GetCurrentDirectory(), and i don’t really understand why. The thing i don’t understand is that it works for XP but not for Seven (or at least on my computer). There is my code:
char dir_name[1024]; // as a global variable
int get_files() {
// ...
DWORD dwRet;
dwRet = GetCurrentDirectory(MAX_PATH, dir_name);
printf("%s\n",dir_name);
printf("%d\n",dwRet);
//...
}
This code will return:
printf("%s\n",dir_name); -> return "c"
printf("%d\n",dwRet); -> 42 (which is the right length of the string that should be returned)
I don’t understand why dir_name only takes the value “c”.
I think, the result is Unicode in Windows Seven! and after each ascii character of this function there is zero. And you are printing it by
printf. You should use wide-char functions in your program. Likewprintf.Try below code: (Tested in Visual Studio 2008 + Windows 7)