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?

Reply via email to