私は最近 Win32 で多くの作業を行っていますが、私はそれにかなり慣れていないため、組織に関するアドバイスが必要です。C++ では、グローバル変数を宣言するのは構文的には機能しますが、変数はどこでも変更できるため、変数への変更を追跡するのがはるかに難しくなるため、これはずさんだという印象を常に受けていました。
私の Win32 プロジェクトには、複数の場所で変更する必要があるいくつかの変数があります。たとえば、そのような変数の 1 つが WndProc 関数とダイアログ プロシージャ関数にありました。この使用方法により、WndProc で実際の値を単純に使用し、DialogBoxParam を使用してダイアログ ボックスを呼び出し、lParam 値を介して値をダイアログ ボックスに渡すことができました。
ただし、描画に使用する特定のビットマップや、複数の異なるウィンドウ メッセージ呼び出しで使用される変数など、他の値もあります。これらの値は、WndProc 関数または複数の関数の複数のインスタンス全体で保持する必要があります。作成した関数のパラメーターを制御できますが、複数の異なるウィンドウ メッセージに関係なく使用できるように、変数を WndProc 関数に渡す必要がある場合はどうすればよいでしょうか? 複数の値を渡す必要がある場合はどうすればよいですか?
これまでのところ、私はすべてをグローバルにしてきましたが、うまくいきますが、それは私には雑に感じます...しかし、いくつかの変数は慣例として一般的にグローバルであることを知っています - メインウィンドウやインスタンス変数のように。
皆さんはどう思いますか?