プログラミングメモ - MFC の UNICODE サポートを有効にしたときに出るエラー

2008/11/09

UNICODE サポートを使っていなかったので,今まであまり気にしてなかったんですけど,MFC で UNICODE サポートを有効にすると,次のようなメッセージが出てリンクできませんでした。

msvcrt.lib(crtexew.obj) : エラー LNK2001: 外部シンボル "_WinMain@16" は未解決です。

割と有名なトラブルらしいので,わざわざ書くほどでもないんですけど,自分のために書いておく。Microsoft のサポートページによると,UNICODE サポートをつける場合,エントリポイントが WinMain() から変わるみたい。そりゃリンクできないわ。

VC6 の解決方法は次の通り。

  • メニューの[プロジェクト]→[設定]で,「プロジェクトの設定」ダイアログを開く。

  • 「リンク」タブから,カテゴリ「アウトプット」を選択する。

  • 「エントリポイント シンボル」のテキストボックスに "wWinMainCRTStartup" を設定する。

これで問題なくリンクできました。一応,どこを修正するのか,ダイアログの様子を載せておきます。

VC6 の UNICODE サポートで出るエラーの対策の図
図1 VC6 の UNICODE サポートで出るエラーの対策の図

毎度のことなんですけれど,Windows のアプリケーション作りって,ほとんどが調べモノになってる気がします。ま,あたしが未熟なだけなんですが。それにしても,いくら調べても,調べきれないなあ……。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.