将棋プログラミング

(将棋に関する)ソフトウェア開発のノウハウ等。

Windows Server 2019 と Windows 10 の違い

C++/MFC で開発したソフトを Windows Server 2019 で実行すると、 Windows 10 と一部、動作が異なることに気がついた。

1. GetTempPath()

GetTempPath() で、一時パスを取得した時、 Windows Server 2019 では、

"C:\Users\(ユーザ名)\AppData\Local\Temp\2\ "

等、数字が付き、このパスは存在しない。

2. locale

次のコードは、Windows 10 では動作するが Windows Server 2019 では、exception が発生し、"bad locale name" と表示される。

std::locale::global(std::locale("En_US"));

次のコードは、Windows 10、Windows Server 2019 共、動作する。

std::locale::global(std::locale("ENU_USA"));