http://bugs.winehq.org/show_bug.cgi?id=28525
--- Comment #5 from André H. nerv@dawncrow.de 2011-10-03 10:30:12 CDT --- First: /*This code is better*/ #include <stdio.h> #include <windows.h> int main(int argc, char *argv[]) { char longdirectory[MAX_PATH] = ""; char shortdirectory[MAX_PATH] = ""; GetCurrentDirectoryA(MAX_PATH, longdirectory); GetShortPathNameA(longdirectory, shortdirectory, MAX_PATH); printf("%x\n", GetLastError()); printf("%s\n", longdirectory); printf("%s\n", shortdirectory); return 0; }
you printed out uninitialized memory as GetShortPathName didn't touch the string because it failed.
Second: Could you simply stop running apps from .wine/? On NT you also can't run thinks from "C:.." AFAIK