Problem "klassenübergreifend" auf Variablen zuzugeifen
-
hallo, ich wollte aus der klasse
CPicToLightView
auf Variablen in der Klasse
CPicToLightApp
zugreifen.
Dazu habe ich erst einmal folgendes gemacht:void CPicToLightView::OnBnClickedBtninithardw() { CANResult Res; CString strIO, strInterrupt, strTemp; CPicToLightApp* pApp = dynamic_cast<CPicToLightApp*>(AfxGetApp()); ASSERT(pApp); ....Dabei bleibt das Programm aber stehen, an folgender Stelle:
_CRTIMP void * __cdecl malloc ( size_t nSize ) { --> void *res = _nh_malloc_dbg(nSize, _newmode, _NORMAL_BLOCK, NULL, 0); RTCCALLBACK(_RTC_Allocate_hook, (res, nSize, 0)); return res; }Habe das doch so gemacht, wie es hier steht:
2 C...App
An die C...App kommt man von JEDER Klasse der Anwendung aus mit
AfxGetApp();Da das aber noch nicht den richtigen Typ hat, muss gecastet werden. Ich nutze dynamic_cast, weil dieser am sichersten ist (RTTI muss eingeschaltet sein).
Ein einfacher C-Cast funktioniert meistens auch - wenn er aber mal nicht funktioniert, wird es problematisch.C...App* pApp = dynamic_cast<C...App*>(AfxGetApp()); ASSERT(pApp); // zur SicherheitWäre toll, wenn mir jemand mal einen schubs geben und sagen könne, was ich da falsch mache.
Vielen Dank
-
mit folgendem funktionierts
CPicToLightApp* pApp= STATIC_DOWNCAST(CPicToLightApp,AfxGetApp());