[HMC]年間5250円で独自ドメイン付属、ウィルスチェックありのレンタルサーバ!
Last update : 2001/12/16
CWinAppの派生クラスへもっと簡単にアクセス
CWinAppの派生クラスとは?
MFC AppWizardを使ってプロジェクトを作成すると、 'C'+プロジェクト名+'App'という感じのクラスが作成されます。 このクラスはCWinAppの派生クラスであり、アプリケーションを管理するクラスとなります(?)。 よく、いろいろなクラスからデータを共有したい場合、グローバル変数を使用するのは嫌われるため、 このCWinAppの派生クラスのメンバ変数として宣言します。この場合、そのメンバ変数へアクセスするために、 例えばそのCWinAppの派生クラスが「CMfcTestApp」という名前ならば、
と言うようにします。
一度で良いならば、
でも良いですね。
ただ、こうした事を何度も書いていると、ソースも見にくくなるし、面倒くさくなってきます。 マクロを使うという手もありますが、今回は別の方法を紹介します。
CWinAppの派生クラスへ簡単にアクセス
ここでも、CWinAppの派生クラスは「CMfcTestApp」という事にします。
このCMfcTestAppのソースファイルを覗いてみると、こんな記述があります。
という事は、こいつをどこでも使えるようにすれば、手軽にCMfcTestAppクラスへアクセス出来るわけですね。 というわけで、externを使って、CMfcTestAppのヘッダーファイルの最後の方(クラス宣言が終わった次くらい)へ次のような文字列を埋め込みます。
「CMfcTestApp」というは例なので、自分の派生クラス名にしてください。
こうすれば、あとはどこでも、
という感じでメンバ変数へアクセス出来るようになるというわけです。
・・・。
やっぱり、こういうやり方って邪道なんでしょうかねぇ(^^;