質問: SetProcessDpiAwarenessContext関数が未定義参照にならないようにするにはどうすればよいでしょうか. また,同じようにWin32APIの関数をimportする際に何か注意点はあるでしょうか. ### その他補足情報 Windows 10 バージョン:1903(SetProcessDpiAwarenessContextは1703の時に追加された関数なので1903のuser32.dllには存在しています.) ghcのバージョン:8.8.3 ビルドツール:stack 2.1.3(.cabalファイルのexecutableの項目にはextra-libraries: user32を追加しています.)
回答: 当該APIは比較的新しいため、GHC 8.8.3に付属するmingw-w64に含まれる `user32.dll` 用のインポートライブラリ(`libuser32.a`)には `SetProcessDpiAwarenessContext` が含まれていないようです。 GHC 8.10.1にはより新しいmingw-w64が含まれているので、「GHC 8.8.3の代わりにGHC 8.10.1を使う」というのが解決策の一つとなります。`stack --compiler=ghc-8.10.1 build` という風にstackを実行すればGHC 8.10.1を使うことができます。