CArray<int,int> serialize
-
Ja aber ich muss die doch irgendwie überschreiben? Wie mache ich den das?
mfg
-
Global:
//.h: template <> void AFXAPI SerializeElements <int> ( CArchive& ar, int* pData, int nCount ); class MeineKlasse {...}; //.cpp template <> void AFXAPI SerializeElements <int> ( CArchive& ar, int* pData, int nCount ) { for ( int i = 0; i < nCount; i++) { if(ar.IsStoring()) ar<<pData[i]<<" "; else ar>>pData[i]; } }(wobei du den Prototyp eventuell sogar weglassen kannst)
-
Hi,
hab das jetzt so gemacht. Jetz mault der compiler rum das die Serializelements schon in der doc definiert ist. Liegt das vlt daran das ich dort MeineKlasse includiere. Wobei sich dann wieder die Frage stellt wie kann ich das verhindern, dass der compiler da nicht meckert.
mfg
-
Ich hoffe mal nicht, daß du die .cpp Datei irgendwo includet hast. Ansonsten sollte (zumindest nach meinem Verständnis) die Deklaration der SerializeElements keine Probleme verusachen.
PS: Wer genau beschwert sich? Der Compiler (Cxxxx) oder der Linker (LNKxxx)?
-
Der Linker
mfg
-
In der doc wird die meineklasse.h includiert...
-
Hmm, eventuell solltest du den Code mal im Zusammenhang zeigen.
-
meineklasse.h
class meineklasse{
}
meineklasse.cpp
template <> void AFXAPI SerializeElements <int> ( CArchive& ar, int* pData, int nCount )
{
for ( int i = 0; i < nCount; i++)
{
if(ar.IsStoring())
ar<<pData[i]<<" ";
else
ar>>pData[i];
}
}doc.cpp
#include "MeineKlasse.h"
-
Also dort sehe ich nichts, worüber der Linker stolpern könnte. Entweder du hast den Code zu sehr gekürzt oder du hast ein anderes Problem, das nichts mit der Serialisierung zu tun hat.
(PS nur für die Zukunft: sfds)
-
Habe gerade gemerkt das ich die meineklasse.h auch im view includiere... Könnte das ein problem sein? Das komische ist das der linker anzeigt es wäre in einer klasse schon definiert,wo die serializelements gar nicht vorhanden ist.
mfg
-
Ey such mal danach bei google
-
Eyh habe ich schon kann da aber nicht brauchbares daraus schliessen...