Carl
Tue Jul 25 18:47:32 CDT 2006
"mnb111" <mnb111@newsgroups.nospam> wrote in message
news:EA1836EE-6A4C-4AFE-9D7B-E370B32E406B@microsoft.com...
> Regarding your comment about "binary serialzation", for those of us coming
> from VS6, we didn't have many options other that MFC's CArchive. We have a
> very extensive app based on VS6 C++. Am I missing something here or was
> your
> suggestion refering to "starting from scratch"?
>
> We obviously ran into the same problem with CTime. This was well over a
> year
> ago that we did the first port (first and only). We searched high and low
> for
> any info about CTime and came up empty. Where did you find the info on the
> macro and is it something new?
>
> What we did was to deserialize into a temp and convert and reserialize
> with
> a new version. Is there any MFC or VS support for this type of migration?
>
> Just wondering as we've never heard of the macro (even though it makes no
> sense to us to keep CTime as 32-bit). Thanks for any info you can provide.
The macro is new with VC8, and is documented (somewhat) at:
http://msdn2.microsoft.com/en-us/library/ms235429.aspx
That CTime is just a wrapper around a time_t isn't clearly documented, that
I can find. You might infer from the inconsistencies in the documentation
of CTime::GetTime() at
http://msdn.microsoft.com/library/en-us/vclib/html/_mfc_ctime.3a3a.gettime.asp?frame=true
that this is indeed the case - the function is documented as returning
__time64_t, but the example shows it returning time_t.
It's a wart, no doubt about it. That is a danger with binary
serialization - unless you explcitly control the layout of everything in the
archive, you're subject to version incompatibilities.
-cd