000
08.07.2007, 14:13 Uhr
WindDancer1
|
Hallo Leute ,
zur Übung setze ich die Aufgaben eines C++ Buches in die MFC um, dabei ist folgendes Problem aufgetaucht. Bei dem Projekt handelt es sich um ein SDI RTFView !
Ich habe eine kleine Klasse geschrieben die das kleine 1X1 ausrechnet und in ein Ergebnisarray (itsResult) in dieser Klasse konvertiere ich dann das Ergebnis Array itsResult das als integer Array initialisiert wurde in ein CString Array um und gebe es zurück !
Hier der Code :
Code: |
class CCalculate { private:
public: CCalculate (){}; ~CCalculate (){};
int itsResult[101];
CString *berechne(); };
|
Nun deklariere ich in ...Doc.h einen Pointer vom typ CString :
Code: |
#if !defined(AFX_SDI_1MAL1DOC_H__3962474E_66C6_4445_A44D_BF384D019A4F__INCLUDED_) #define AFX_SDI_1MAL1DOC_H__3962474E_66C6_4445_A44D_BF384D019A4F__INCLUDED_
#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000
class CSDI_1Mal1Doc : public CRichEditDoc { protected: // Nur aus Serialisierung erzeugen CSDI_1Mal1Doc(); DECLARE_DYNCREATE(CSDI_1Mal1Doc)
// Attribute public:
CString *Result; <----------------------------- Deklaration von Result
|
In ... Doc.cpp binde ich meine Klasse ein erzeuge ein Obkekt und initialisiere den Zeiger Result :
Code: |
#include "stdafx.h" #include "SDI_1Mal1.h"
#include "Calculate.h" <-------------------- Einbindung der Klasse
#include "SDI_1Mal1Doc.h" #include "CntrItem.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // CSDI_1Mal1Doc
IMPLEMENT_DYNCREATE(CSDI_1Mal1Doc, CRichEditDoc)
BEGIN_MESSAGE_MAP(CSDI_1Mal1Doc, CRichEditDoc) //{{AFX_MSG_MAP(CSDI_1Mal1Doc) // HINWEIS - Hier werden Mapping-Makros vom Klassen-Assistenten eingefügt und entfernt. // Innerhalb dieser generierten Quelltextabschnitte NICHTS VERÄNDERN! //}}AFX_MSG_MAP // Zulassen der Standardimplementierung für OLE-Container ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, CRichEditDoc::OnUpdateEditLinksMenu) ON_COMMAND(ID_OLE_EDIT_LINKS, CRichEditDoc::OnEditLinks) ON_UPDATE_COMMAND_UI_RANGE(ID_OLE_VERB_FIRST, ID_OLE_VERB_LAST, CRichEditDoc::OnUpdateObjectVerbMenu) END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // CSDI_1Mal1Doc Konstruktion/Destruktion
CCalculate Calc; <--------------- Objekt erzeugen
CSDI_1Mal1Doc::CSDI_1Mal1Doc() { // ZU ERLEDIGEN: Hier Code für One-Time-Konstruktion einfügen
}
CSDI_1Mal1Doc::~CSDI_1Mal1Doc() { }
BOOL CSDI_1Mal1Doc::OnNewDocument() { if (!CRichEditDoc::OnNewDocument()) return FALSE;
// ZU ERLEDIGEN: Hier Code zur Reinitialisierung einfügen // (SDI-Dokumente verwenden dieses Dokument)
Result = Calc.berechne (); <--------- initialisieren
In ...View.cpp versuche ich die Ausgabe zu machen : void CSDI_1Mal1View::OnInitialUpdate() { CRichEditView::OnInitialUpdate();
CSDI_1Mal1Doc *pDoc = GetDocument ();
SetWindowText(pDoc->Result[97]); <------------ Ausgabe der Stelle 97
|
Es passiert jedoch überhaupt nichts bis einschl. Stelle 97 ab Stelle 98 werden nur sonderbare Zeichen ausgegeben . Ich versuche jetzt schon seit Sunden das Programm ordentlich zum Laufen zu kriegen aber entweder seh ich den Wald vor lauter Bäumen nicht mehr oder irgendwas läuft grundsätzlich schief .
Wäre dankbar wenn ihr mir sagen könntet wie mans richtig macht!
Vielen Dank für eure Mühe und Hilfe schon mal Vorab Winddancer |