Serialisierungsprobleme mit CArray



  • Hi,

    ich habe ein CArray "magazine" das ist als CArray<CMag,CMag> definiert. In der Klasse, in der "magazine" ein Member ist, hat mein Code (bisher) folgendes Konstrukt, um beim Aufruf von magazine.Serialize() die CArray-Elemente zu serialisieren:

    void AFXAPI SerializeElements(CArchive& ar, CMag* pNewMags, int nCount)
    {
    ...
    }
    

    Unter Visual Studio 6 wurde diese Funktion bei magazine.Serialize() offenbar immer aufgerufen, da der Code dort funktioniert hat. Jetzt versuche ich, das Ganze unter VS2011 zum laufen zu bringen, muss aber feststellen, dass ein Aufruf von magazine.Serialize() eben nicht mehr dazu führt, dass dieses SerializeElements() ünerhaupt aufgerufen wird, statt dessen lande ich in einer Default-Implementierung in afxtempl.h.

    Ersetze ich obiges Konstrukt jedoch durch ein

    template<class CMagazine>
    void AFXAPI SerializeElements(CArchive& ar, CMagazine* pNewLvls, INT_PTR nCount)
    {
    ...
    }
    

    wie es unter http://msdn.microsoft.com/en-us/library/6s70zdb8(v=vs.71).aspx beschrieben ist, dann meckert der Compiler nur darüber, dass eben dieses Konstrukt in afxtepl.h bereits definiert ist.

    Was nun? Wie muss ich meine CArray-Serialisierung anpassen, so das sie auch mit VS 2011 funktioniert?



  • hat sich erledigt


Anmelden zum Antworten