000
20.05.2004, 15:32 Uhr
~Michael L.
Gast
|
Hi, ich habe eine einfache Klasse (Dialog). In der Init lege ich einige Objekte mit new an. Doch möchte ich sie später in einer Funktion nutzen, dann kennt er sie auf einmal nicht mehr und ich bekomme eine Access Violation! Ich habe nun echt keine Ahnunh wo ich da suchen soll. Ich habe das Objekt weder gelöscht (delete), noch habe ich den Zeiger auf was anderes zeigen lassen.
C++: |
BOOL CTestShapeLibDlg::OnInitDialog() { CDialog::OnInitDialog();
// Hinzufügen des Menübefehls "Info..." zum Systemmenü.
// IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } }
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen AfxInitRichEdit();
// Konverter erzeugen m_converter = new CConverter(); // Back Button deaktiveren m_ctrlBack.EnableWindow(FALSE); // Values Dialog erstellen und anzeigen m_valuesDlg = new CValuesDlg(this); m_valuesDlg->Create(IDD_VALUES); m_valuesDlg->ShowWindow(SW_SHOW); // View Dialog erstellen m_viewDlg = new CViewDlg(this); m_viewDlg->Create(IDD_VIEW); return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
|
Das ist die Init, und in der Funktion möchte ich auf die Objekte zugreiffen
C++: |
bool CTestShapeLibDlg::LoadShape() { CConverter* m_converter = new CConverter(); // Shapefile einlesen if(m_converter->LoadShapeFileFromPath("test.shp")) { // Tif zeichnen m_converter->DrawShapeToFile(); } return true; }
|
Wäre super wenn jemand eine Idee hat, THX
mfg |