Structur übergeben!



  • Guten Morgen,

    ich habe test1.cpp und test2.cpp.
    test2.cpp ist ein Dialog er wird mit DoModal in test1.cpp aufgerufen.

    In test2.h ist eine Struktur und ein Array angelegt angelegt.

    public:
    typedef struct _PTestTyp{
    		DWORD						dwTest;
    		CString						strTest;
    		int						iTest;
    		BOOL						bTest;
    	} PTestTyp;
    
    typedef CArray <PTestTyp, PTestTyp> PTestTypArray;
    

    In test2.cpp füll ich das Array.

    PTestTyp	sctTest;
    PTestTypArray   asctTest;
    
    while (){
    	sctTest.dwTest = blablabla;
    	sctTest.strTest = blablabla;
    	sctTest.iTest = blablabla;
    	sctTest.bTest = blablabla;
    
            asctTest.Add(sctTest);
    }
    

    Jetzt möchte ich meiner test1.cpp das array übergeben.
    Deswegen ruf ich in test2.cpp folgende Funktion auf.

    ttest1.SetTestArray(asctTest);
    

    In test1.cpp schaut das dann folgender maßen aus!

    void TCashDoc::SetTestArray(PTestTypArray asctTest)
    {
        // Hier soll Array weiter verarbeitet werden...
    }
    

    die test1.h

    public:
    typedef struct _PTestTyp{
    		DWORD						dwTest;
    		CString						strTest;
    		int						iTest;
    		BOOL						bTest;
    	} PTestTyp;
    
    typedef CArray <PTestTyp, PTestTyp> PTestTypArray;
    
    public:
    void SetTestArray(PTestTypArray asctArtikel);
    

    Doch beim Kompilieren folgender Fehler:

    rror C2664: 'SetTestArray' : Konvertierung des Parameters 1 von 'struct test2::_PTestTyp*' in 'class CArray<struct test1::_PTestTyp,struct test1::_PTestTyp>' nicht moeglich
            Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Ueberladungsaufloesung des Konstruktors ist mehrdeutig
    

    Kann mir jm. helfen?

    mfg



  • Hallo Sgrab,

    test1.cpp und test1.h passen aber nicht ganz zueinander - schau dir mal den jeweiligen Parameter bei der Funktion SetTestArray an...



  • Gefixed! Hatte ausversehen falsches array in den Thread geschrieben!
    Problem immernoch vorhanden!

    Trotzdem danke 😉



  • Probiere mal

    SetTestArray(const PTestTypArray& asctTest)
    

    (evtl. hat die CArray-Klasse keinen Kopierkonstruktor)



  • SetTestArray(const PTestTypArray& asctTest)
    

    Gleicher Fehler!^^

    Wie kann ich überprüfen ob die CArray Klasse einen Kopierkonstruktor hat oder nicht?

    Mfg


  • Mod

    Könntest du den Code wirklich per Copy&Paste einfügen, anstatt ihn abzuschreiben? Ich habe den Verdacht, dass du den Fehler versehentlich behoben haben könntest. Bei der Ähnlichkeit deiner Typenbezeichnungen kann ich mir gut vorstellen, dass du dich an einer Stelle bloß vertippt hast.

    Ideal wäre ein vollständiges, minimales Beispiel, welches wir hier bei uns selber compilieren können (bis auf den Fehler). Es besteht auch eine gute Chance, dass du den Fehler selber findest, während du versuchst, so ein Beispiel zu erstellen. Sobald ud etwas wegkürzt und der Fehler verschwindet, hast du nämlich mit hoher Wahrscheinlichkeit die Ursache gefunden.



  • Ist Copypaste, bloß die struct Namen, variablen Namen und die Funktions Namen sind verändert, Firmen vorschrift! 😉

    Des ist ein Teil eines großen Programmes, das was entscheident ist, hab ich gepostet.....

    Tut mir leid wenn ich euch nicht mehr geben kann..


Log in to reply