-
デバッグ
【MFC】CreateFileがGetLastError 5(ERROR_ACCESS_DENIED)で失敗するときの確認箇所
CreateFile が失敗して GetLastError() が 5 を返したとき、まず疑うのは2つです。ひとつは Program Files のような保護された場所へ書き込んでいること、もうひとつは読むだけのファイルに GENERIC_WRITE を付けていることです。管理者として実行するのは... -
ビルド
【MFC】mfc100u.dll / mfc100.dll が見つからない:VC++ 2010 再頒布パッケージの特定と、/MT で依存を外す
MFC アプリを配布先の PC で起動したとき、「mfc100u.dll が見つからないため、コードの実行を続行できません」あるいは mfc100.dll のダイアログで止まる。必要なのは Visual C++ 2010 の再頒布可能パッケージです。よくある行き止まりは、新しい「2015-2... -
デバッグ
【MFC】GetLastError 6(ERROR_INVALID_HANDLE):無効なハンドルの原因と切り分け
ワーカースレッドの停止用に作ったイベントを、スレッドがまだ使っている間にダイアログ側でCloseHandleしてしまう。その後でSetEventを呼ぶと戻り値は0、GetLastError()は6、つまりERROR_INVALID_HANDLEです。この記事では、閉じたハンドルを使い回したこ... -
ビルド
【MFC】C4267・C4244を64bit移行で解消する型の直し方
MFCプロジェクトをx64でビルドすると、32bitでは出なかったC4267やC4244が現れることがあります。この記事では、size_t、ptrdiff_t、INT_PTRをintへ縮小している箇所を見分け、安全な型へ直す方法を扱います。 C4267とC4244で最初に見る型 警告よくある式... -
デバッグ
【MFC】WinHTTPのHTTPS接続失敗をTLS 1.2で切り分ける
MFCアプリからHTTPSへ接続できないとき、エラーコードだけでTLSバージョン不一致とは断定できません。この記事では、WinHTTPでTLS 1.2を明示して接続を試し、DNS、プロキシ、証明書、Schannelのどこで失敗したかを切り分けます。 最初に見るエラーと確認先... -
DB
【MFC】ODBC 接続の IM002 エラー:32bit / 64bit ドライバ不一致の確認と対処
Visual Studio 2026 で実機検証しました。ODBC 接続が IM002 で失敗する原因は、アプリと ODBC ドライバのビット数不一致です。32bit / 64bit のドライバ一覧の確認方法、odbcad32.exe の使い分け、接続文字列のドライバ名の違いを扱います。 -
デバッグ
【MFC】OutputDebugString() で自作ログ出力
Visual Studio 2026 検証済み。OutputDebugString() によるログ出力。TRACEが使えない環境(別スレッド等)からデバッガへメッセージを送る方法。エラーの根本原因を特定し、再発を防ぐための修正フローを提示。 -
デバッグ
【MFC】DebugView でリリース後のログを見る
Visual Studio 2026 検証済み。Sysinternals の DebugView で OutputDebugString / TRACE 出力をキャプチャし、デバッガのない現場でアプリのログを確認・保存・フィルタする手順を解説します。 -
ビルド
【MFC】LNK2005「already defined in LIBCMTD.lib」/ nafxcw.lib:ランタイムライブラリと「MFCの使用」設定の不一致を直す
Visual Studio 2026 検証済み。LNK2005「already defined in LIBCMTD.lib」/ nafxcw.lib 競合の直し方。ランタイムライブラリ(/MT・/MD)と「MFCの使用」設定の組み合わせ不一致が原因。設定の正しい合わせ方と /NODEFAULTLIB の使いどころを解説します。 -
ビルド
【MFC】mfc120.dll が見つからない:VC++ 2013 再頒布パッケージの特定と導入(x86/x64)
Visual Studio 2026 検証済み。mfc120.dll が見つからないエラーの直し方。mfc120.dll は Visual C++ 2013 のランタイムDLL。x86/x64 の取り違えを切り分け、正しい再頒布可能パッケージ(VC++2013)を特定して導入する手順を解説します。