Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Array als Parameterübergabe

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 < [ 2 ]
000
27.09.2004, 10:33 Uhr
~Tanja
Gast


Hi,

Ich möchte gerne innerhalb eines Projekts von einer Klasse zur anderen Parameter übergeben.
Das sind Array-Felder und ich habe keine ahnung, wie man das überhaupt macht.

Wäre euch sehr dankbar, wenn ihr mir helfen könntet.

Grüße Tanja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.09.2004, 11:17 Uhr
~Tanja
Gast


Hier ist die Parameterübergabe von der weitergebenden Klasse:


C++:
Anmeldung::OnOK();
UserDetail dUI(user[200],strFullName[200],objRo[200],objDa[200], this);
dUI.DoModal();



Ich weiss noch nicht mal, ob man so Arrays übergeben kann?! Denn genau an dieser Stelle bricht das Programm ab

Und hier ist der Konstruktor aus der Klasse, das die Werte erhält:


C++:
UserDetail(CString[200] ,CString[200] ,CString[200] ,CString[200] , CWnd* pParent);




C++:
UserDetail::UserDetail(CString user[200],CString strFullName[200],CString objRo[200],CString objDa[200], CWnd* pParent)
    : CDialog(UserDetail::IDD, pParent)
{
    m_ausgabeUser.AddString(user[200]);
    m_ausgabeFN = strFullName[200];
    m_ausgabeRole = objRo[200];
    m_ausgabeDate = objDa[200];
}



Ich weiss nicht, was ich falsch gemacht habe, und hoffe auf eure Hilfe.

Tanja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.09.2004, 11:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi machs so:


C++:
Anmeldung::OnOK();
UserDetail dUI(user,strFullName,objRo,objDa, this);
dUI.DoModal();


sonst übergibst du das element 200, welches nicht existiert! (0-199)

und dann am besten so:


C++:
UserDetail(CString* ,CString* ,CString* ,CString* , CWnd* pParent);




C++:

UserDetail::UserDetail(CString *user,CString *strFullName,CString *objRo,CString objDa*, CWnd* pParent)
    : CDialog(UserDetail::IDD, pParent)
{
    [-]m_ausgabeUser.AddString(user[200]);
    m_ausgabeFN = strFullName[200];
    m_ausgabeRole = objRo[200];
    m_ausgabeDate = objDa[200]; [/-]
}




die zuweisung in dem ctor hat keinen sinn, nimm am besten für m_ausgabeFN usw ebenfalls CString-Pointer. Für das ListBox (m_ausgabeUser) musst du mit einer Schleife füllen, also z.b


C++:
for(int x = 0; x < 200; x++)
{
  m_ausgabeUser.AddString(user[x]);
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.09.2004, 13:25 Uhr
~Tanja
Gast


Vielen Dank für die Antwort.
Ich setz' es gleich um...

Gruß Tanja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.09.2004, 13:41 Uhr
~Tanja
Gast


Nachdem ich das alles umgesetzt habe, erhalte ich auch soweit keine Fehlermeldung.

Allerdings bricht das Programm an dieser Stelle ab:

C++:
UserDetail dUI(user,strFullName,objRo,objDa,lLBound, lUBound, this);



In der Fehlermeldung heisst es:
Debug Assertion Failure
...
File:afxwin2.inl
...

Was ist denn daran falsch?

Tanja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.09.2004, 15:33 Uhr
~Tanja
Gast


Ich habe den Fehler irgendwie behoben. Soweit funktionieren die Array-Übergaben mit dem Konstruktor.
Was ich noch nicht behoben habe, ist dieser Fehler hier:


C++:
m_ausgabeUser.AddString(m_aUser[i]);



(Diese Zeile steht im Konstruktor. )

Ich habe echt keine Ahnung, warum das nicht geht. Eigentlich müsste es doch funktionieren, oder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.09.2004, 16:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was für ein fehler kommt denn?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.09.2004, 07:57 Uhr
~Tanja
Gast


hi,

Leider war ich gestern schon weg!

Der Fehler ist ein Debug Assertion Failure. Dieselbe Fehlermeldung wie oben beschrieben.
Ich habe keine Ahnung warum das nicht geht.

Gruß Tanja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
28.09.2004, 08:39 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Welchen Wert hat denn i?

Bist du sicher das es noch im Wertebereich deines Arrays liegt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
28.09.2004, 08:50 Uhr
~Tanja
Gast


Da es schon im ersten Durchlauf der For-Schleife abbricht, ist i= 0.

Mein Array hat die Größe 200, und die Werte, die ich erhalte sind wesentlich weniger.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ 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: