From the docs for [GetFullPathName](https://msdn.microsoft.com/en-us/library/windows/desktop/aa364963(v=vs.85).a...):
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function (GetFullPathNameW), and prepend "\?" to the path.
I'm not sure why we use any ANSI functions in Win32 code, that stuff has been deprecated for nearly 20 years by now. We should just define `_UNICODE` or whatever and use the bare wrapper macros and `TCHAR` for character type.
Some time ago I wrote a portable, "proper" (not limited size) `realpath` kind of function, using `GetFullPathName()` on Windows, `canonicalize_file_name()` where supported, and `pathconf/realpath` on others, etc. If I get a chance I'll see if I can find it or re-implement it (it was fairly straightforward).