新しいMFCブラウズ編集コントロールを含む簡単なダイアログがあります。コントロールは、メンバー変数ウィザードを使用して 'CMFCEditBrowseCtrl m_edit'にリンクされました。ウィザードで生成されたマッピングはうまくいくようです。VS2010、MFCEditBrowseControlヒープクラッシュ
最初に実行すると、編集コントロールに中国語の文字または疑問符が入力され、ブラウズボタンが最初に押されたとき、またはファイルが選択されるとすぐにクラッシュします。
アプリがヒープの破損に失敗してクラッシュします。
新しいテストプロジェクトを作成して同じ手順を実行すると、すべて正常に動作します - 問題はVS2003 - > VS2005のアップグレード履歴を持つより大きな古いプロジェクトでブラウズ編集コントロールを実装しようとすると発生します。 > VS2008 - > VS2010。
コードには奇妙なことは何もなく、プロジェクトマニフェストや他のinit命令/競合と関係している可能性があります。 CWinApp :: InitInstanceコードをコピーして貼り付けて、テストプロジェクトから何かを明らかにする可能性があることを期待していますが、動作は変わりません。
アイデア?
Microsoft Connectの詳細については、このコメントを更新しました。残念ながら、プロジェクトをUnicodeに変換する唯一の解決策は残っています。 – Jonas
さらに詳しい調査をしたところ、私はこのコントロールに依存しているコードを放棄していました。私は、ダイアログボックスにCMFCBrowseEditCtrlを直接置き、CEditコントロールを置く代わりに回避策があるかもしれないことに気付きました!ヘッダーファイルで、コントロールのメンバ可能なCEdit型をCMFCBrowseEditCtrlに置き換えます。私はこれが正常に機能したこのコントロールを使っていくつかの古いコードを見つけたので、これがうまくいくことを発見しました。 – Jonas