Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Int Array nach CStringArray casten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.07.2007, 10:02 Uhr
mike
Pinguinhüpfer
(Operator)


Wie schaut die berechne Methode aus?
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.07.2007, 10:34 Uhr
Tommix



Hallo,
Result ist ein Zeiger auf ein CString-Objekt, nicht auf dessen Daten. Vermutlich liegt Dein Denkfehler darin, daß Du aus char* CString* gemacht hast, korrekt wäre CString.
Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: