我们的团队有一个错误让我们很困惑。
以下代码返回false:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
{
AfxMessageBox(GetStr(IDS_MAINFRM_FAIL_TO_LOAD));
ASSERT(FALSE);
return FALSE;
}我们正在使用VS2010进行编译,并且安装了RogueWave Stingray组件。CMainFrame是以CMDIFrameWnd为基础,由BCGSoft制作的CBCGPMDIFrameWnd。
我们的软件在全球大约100台机器上运行,没有任何问题。它运行在Windows7-10 x86 & x64上。一直起作用直到这周。澳大利亚米尔杜拉的一小群人报告了一个问题。对于所有运行WIN7x86Enterprise和Win10x64Home的代码片段,上面的代码段返回false。我亲自检查了他们的一台机器(Win10x64Home),一切似乎都井然有序。
我已经为这个项目尝试过删除RES和APS文件。这没什么用。
有人知道问题出在哪里吗?我愿意接受有教养的猜测。
提前感谢!
PS:新信息:看起来是时间问题。在计算机上,所有的UTC+都失败了,UTC0 & UTC- pass。我们不知道为什么。任何帮助都将不胜感激。谢谢!
发布于 2016-03-25 21:31:28
我们使用这个时代作为起点,在经过的时间戳上进行TimeDate计算。MFC不允许在时代之前的日期,因此所有UTC+都失败了日期创建。这个窃听器已经修好了。谢谢大家。
下面是导致问题的代码(已修复)。我们增加了一天的时间让所有的事情都开始工作。CTime::CTime(1970,1,1,0,0) w/ UTC+,使其在1970年伦敦1/1/1之前失败。
谢谢!
CTime t1 = CTime::CTime(yearInt,monthInt,dayInt,0,0,0);
CTime t2 = CTime::CTime(1970,1,2,0,0,0);
CTimeSpan timeSpan = t1-t2;
versionDate = timeSpan.GetDays() + 1;https://stackoverflow.com/questions/36222045
复制相似问题