CTime的成员函数好像有点问题!

weizhisheng 2001-04-17 10:58:00
MSDN上明明写着:struct tm* CTime::GetLocalTm(struct tm* ptm=NULL),ptm参数可以为NULL,可是我在程序中却发生了Access Violation,跟踪发现CTime::GetLocalTm(NULL)返回值为NULL,为什么?
我是在ODBC程序用RFX映射生成的CTime变量,CTime::Format和CTime::GetYear都在内部调用了GetLocalTm,怎么办?我肯定是要用这几个函数的.
...全文
204 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
seongchul 2001-04-17
  • 打赏
  • 举报
回复
当然行了。只要VC6以上的。都可以把CTIME改在COleDateTime.........
我就一直这样做。。:-*
weizhisheng 2001-04-17
  • 打赏
  • 举报
回复
为什么都不看清楚?我说过RFX里面不能用COleDateTime了!
wzg_harbin 2001-04-17
  • 打赏
  • 举报
回复
haoa
seongchul 2001-04-17
  • 打赏
  • 举报
回复
你把ctime改成coledatetime就行了。。。
如果你用的是VC6的话。
weizhisheng 2001-04-17
  • 打赏
  • 举报
回复
panda_w:你那段代码确实是可以的,但是把构造参数设为空的就会出问题.问题是这个CTime是RFX自动生成的,我没有办法有构造函数初始化.
我的代码看了半天也没有发现自己错在那里,请大家帮我查一查?
try
{
pSet->AddNew();
pSet->m_nIntField = rand();
pSet->m_strTextField.Format("Test %d", rand());
pSet->m_TimeField = CTime::GetCurrentTime();
pSet->Update(); // 到这里报Access Violation,用Call Stack找到出错的地方是CTime::GetYear
}
catch(CDBException* e)
{
e->ReportError();
e->Delete();
}
zhaowuqing 2001-04-17
  • 打赏
  • 举报
回复
忘记初始化了吧,先为它分配内存再试试
panda_w 2001-04-17
  • 打赏
  • 举报
回复
怎么会呢,我试了试这段msdn的程序,没有问题
// example for CTime::GetLocalTm
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
struct tm* osTime; // A pointer to a structure containing time
// elements.
osTime = t.GetLocalTm( NULL );
ASSERT( osTime->tm_mon == 2 ); // Note zero-based month!

weizhisheng 2001-04-17
  • 打赏
  • 举报
回复
to molight:你没有明白我的意思,在ODBC中RFX只能映射CTime,不能映射OleDateTime
to personel:我就是用的GetLocalTm(NULL),结果返回的指针是空,后面就出错了。
问题是CTime::GetYear()在内部调用的也是GetLocalTime(NULL),所以一用GetYear就报错,可是没有这个函数还不行!
personnel 2001-04-17
  • 打赏
  • 举报
回复
可以用GetCurrentTime,
利用GetLocalTm,要先建一个CTime对象
CTime b(...);
b.GetLocalTm(NULL);
祥见MSDN.
molight 2001-04-17
  • 打赏
  • 举报
回复
你可以用COleDateTime类就可以了.
weizhisheng 2001-04-17
  • 打赏
  • 举报
回复
还是不明白!不过问题暂时解决.给分先...
weizhisheng 2001-04-17
  • 打赏
  • 举报
回复
对不起!只是我没有想到可以这样用!为什么行呢?COleDateTime并不是从CTime派生的啊。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧