将棋プログラミング

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

MFC

Windows:プログラムの終了

Windows で、MFC を使い、プログラムを終了する場合、次のコードを実行する。 ASSERT(AfxGetApp()->m_pMainWnd != NULL); AfxGetApp()->m_pMainWnd->SendMessage(WM_CLOSE);ただし、このコードは、タイマーから起動された場合等で、異常終了する場合がある。…

CHtmlView を IE11 互換にする

MFC の CHtmlView を使い、Web にアクセスする場合、デフォルトでは、IE7 互換となる。 IE11 互換にする場合、レジストリで Browser Emulation を設定する必要がある。 HKEY_CURRENT_USER SOFTWARE Microsoft Internet Explorer Main FeatureControl FEATURE…

Windows Server 2019 と Windows 10 の違い

C++/MFC で開発したソフトを Windows Server 2019 で実行すると、 Windows 10 と一部、動作が異なることに気がついた。 1. GetTempPath() GetTempPath() で、一時パスを取得した時、 Windows Server 2019 では、 "C:\Users\(ユーザ名)\AppData\Local\Temp\…

MFC:ワーカスレッドから UI を操作する

多くの OS では、ワーカスレッドから UI を操作できない。 例えば、Android では、AsyncTask の doInBackground から Toast.makeText を実行すると exception が発生する。今回、MFC で、ワーカスレッドからツールバーを操作したとき、ツールバーが消えるこ…

MFC のプログラム名が日本語の場合の HTTP 通信のトラブル

数年前に起きたトラブルである。 以前は、プログラム名に日本語は使わなかったが、もう日本語を使ってもいいだろうと思い、プログラム名に日本語を使った。 実行 PC の OS が Windows 7 の場合、問題が無かったが、OS が Windows 10 にアップデイトされたと…

MFC のタブコントロ-ルをプログラムで切り替える

MFC のタブコントロ-ル CTabCtrl をプログラムで切り替えようとしたとき、SetCurSel() では、表示が変わらず、SetCurFocus() を使う必要があった。

コンピューターに mfc140.dll がないため、プログラムを開始できません。

ScanSnap iX1500 のセットアップ中に起きた問題を記録しておく。scansnap/d/ からセットアップするように表示されたが、これは、次の URL にアクセスする。スキャナーScanSnap ドライバダウンロード : 富士通ScanSnap と接続する際に、次のエラーが表示され…