const stringデータが実行可能ファイルにどのように保存されたかについての別の質問に答えると、質問が発生しました。実行時エラーメッセージがOSによって生成されるのではなく、実行可能ファイルに保存されるのはなぜですか。
!This program cannot be run in DOS mode.
合理的なようですが、DOSが新しいWindowsアプリを検出し、適切なエラーメッセージを生成することは期待できません。プログラムがOS機能と確実に通信できない状態にある場合、スタックフレームの破損に関するその他の問題も発生する可能性があります
しかし、意味をなさないものもあり
- Attempt to use MSIL code from this assembly during native code initialization...etc..
ます。.Netアセンブリを呼び出そうとした場合(これは純粋なC ++コードではありません)、.NetまたはOSランタイムはエラーメッセージ自体を生成することができます。
また、ファイルシステムのエラーメッセージもexeファイルに含まれています。確かに、これらのエラーは実行時にOSによって生成されるようにしたいです-アプリが英語以外のバージョンのWindowsで実行されている場合、システムエラーに、コンパイルに使用した言語ではなく、その言語を反映させたくありませんか?
金曜日の午後のような質問ですが、レイモンド・チェンのサイトには何も書かれていないようです。