Mistake of opening of a file having a name in cp1251.

Danny via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Apr 3 01:43:13 PDT 2015


According to the documentation 
<https://msdn.microsoft.com/de-de/library/yeby3zcb.aspx>, _wfopen 
already takes a wide-character string, not an ANSI string.

So

          return _wfopen(name.tempCStringW(), mode.tempCStringW());

would be the correct way. All these weird ansi versions are 
Windows 98 era legacy, they aren't commonly used anymore.

Please also try whether your C runtime implements _wfopen 
correctly or otherwise your file name is somehow broken (maybe 
it's on a FAT filesystem etc). For that, please try opening it in 
a C program using _wfopen(_T("filenamehere"), "r");

For comparison, try to create a file with the same name on an 
NTFS filesystem and try opening it in a C program using 
_wfopen(_T("filenamehere"), "r");

Does that work?

Also, what version and flavour (DMD, GDC, LDC) of D do you use?


More information about the Digitalmars-d-learn mailing list