VSCode + MinGW-w64 via MSYS2 で WIN32API の Unicode ビルド
本記事は C++ Advent Calendar 2023 の6日目の記事だ。
5日目は @uyamae 氏の C++ をclang で解析するときに情報をvcxproj から取得する方法 だった。
Windows 上でサクッと C++ ビルド環境を用意したい
さて、Win32API のコードをビルドしたいけど Visual Studio を入れるまでもない場合、 MinGW の GCC C++ コンパイラ (g++) と Visual Studio Code (VSCode) の組み合わせでも割と快適にビルドできる。
しかし、 VSCode のドキュメントの手順 そのままでは マルチバイト・Unicode周りでハマったので、非ASCII 圏で問題ないように設定する方法を紹介する。
先に解決方法だけ示しておくと、
-
tasks.json
の g++ ビルド時の引数を書き加えてやりつつ"command": "C:\\msys64\\ucrt64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", + "-DUNICODE", + "-D_UNICODE", + "-municode", + "-std=c++23", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ],
-
C/C++ extension for VS Code の設定から、 以下の IntelliSense 設定も変えればよい
-
定義:
_DEBUG UNICODE _UNICODE
-
C 標準: c23
-
C++ 標準: C++23
-