VC6 和VS2008 中的CTime类使用问题

来源:岁月联盟 编辑:exp 时间:2012-09-27

在开发项目的时候,出现了这种错误,用VS2008开发的C++动态库,提供了一个对外的结构体如下

typedef struct FileInfo
{
    DWORD    fsize;            /* File size */
    CTime    ftime;            /* Last modified date and time */
    BYTE    fattrib;        /* Attribute */
    CHAR    fname[MAX_PATH];/* Short file name (8.3 format) */
}FILE_INFORMATION
用VS2008调用这个动态库用的时候正常,查询出来的数据正常,但是用VC6调用这个动态库的时候,

查询出来的数据乱码,后来debug发现,是由于VS2008的CTime类型为64位,但是VC6的CTime为

32位,所以导致VC6取出来的数据不对。

解决方案:①对于跨版本导致的问题,建议提供的借口中用最基本的类型,如WORD,CHAR等。

                    ②自己写一个类,对CTime类进行封装,分别对32和64位处理。