What it takes to pass a file path to a Windows API in C++

Open link in next tab

Ashley Gullen (@AshleyGullen@mastodon.gamedev.place)

https://mastodon.gamedev.place/@AshleyGullen/111109299141510319

If you thought JavaScript was a mess, here's what it takes to pass a file path to a Windows API in C++: 🧵 - Windows uses UTF-16, but most modern software uses UTF-8 - Converting UTF-8 to UTF-16 requires calling MultiByteToWideChar twice (once for size, second to convert) - Alternatively you can set the process code page to UTF-8 and call the 'A' variant API directly, but only sometimes, and only with Windows 10 v1903+, and you might still have to change the system locale setting and reboot (1/3)