私はこの1つのクラスを持っています:「InterClass
」と言ってください。このクラスは次のように宣言されてMainClass
います。
でMainClass.h
:
public:
InterClass *m_pInterClass;
および MainClass のコンストラクターで:
m_pInterClass = new InterClass(this);
InterClass で MainClass のいくつかの関数を使用したいのでthis
、コンストラクターで渡します。これをグローバル ポインターに割り当て、クラス内のあらゆる場所で使用します。
それmain()
が最後に到達するまで、すべてが正常に機能します。
私のコードの最後の行は次のとおりです。
delete MainClass;
OutputDebugString("Exiting Application");
return 0;
アプリケーションが " return 0
" でクラッシュする コードのいたるところに OutputDebugString() を配置しました。私が絞り込んだのは次のとおりです。DebugViewでは、「InterClass」のデストラクタが実行され、「Exiting Application」が実行され、「InterClass」のデストラクタが再び実行されることがわかります。InterClass のデストラクタが 2 回実行される理由がわかりません。にそれreturn 0;
このアプリケーションの性質上、このアプリケーションにブレークポイントを設定できません。
PS 私は組み込み C プログラマーであり、C++ はまったく初めてです (PC アプリケーションでの作業を余儀なくされています :( )