GUI を備えた MFC ベースの Windows アプリケーションがあります。これは C++ で記述されており、多くの COM オブジェクトがあります。「HelloWorld」としましょう。
ユーザーからバグ レポートが送られてきました。特定のユーザー アクションに応答して、MessageBox が表示されることがあります (次の画像では、タイトル バーのキャプションを削除しています)。
1) MessageBox のタイトル バー キャプションは、コード内でその文字列を探していると、 (アプリケーションのソース ファイル内で)HelloWorld
によって識別されるリソース文字列であると思われます。以下は、ソース ファイルの関連セクションです。AFX_IDS_APP_TITLE
.rc
.rc
STRINGTABLE
BEGIN
AFX_IDS_APP_TITLE "HelloWorld"
AFX_IDS_IDLEMESSAGE "..."
AFX_IDS_HELPMODEMESSAGE "..."
END
2) 英語の Windows 7 では、MessageBox のメッセージは「Member not found」です。
3) 異なる言語の Windows 7 では、メッセージは適切な言語に翻訳されます。
問題はここで説明されていると思います
HOWTO: Troubleshoot "Member Not Found" 0x80020003 Errorで、エラーに関連してい
DISP_E_MEMBERNOTFOUND
ます。実際にユーザーサイトで問題を解決しました。
しかし、まだ解決されていない別の問題があり、それはユーザー エクスペリエンスの問題です。バグ レポートを送ってくれたユーザーはプログラマーではなく、「メンバー関数」などの表現における「メンバー」の意味を知らず、そのため、「メンバー」という言葉には多くの意味があるため (少なくとも英語とイタリア語では)、ユーザーはこのメッセージに少し気分を害しました。
アプリケーションのソース コードを確認したところ、アプリケーションによって MessageBox が生成されていないようです。MessageBox を傍受して別の MessageBox を表示するために、その MessageBox がどのように生成されるかを知りたいのですが、それは可能ですか?