首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LoadFrame (MFC)仅在澳大利亚失败

LoadFrame (MFC)仅在澳大利亚失败
EN

Stack Overflow用户
提问于 2016-03-25 14:39:30
回答 1查看 242关注 0票数 2

我们的团队有一个错误让我们很困惑。

以下代码返回false:

代码语言:javascript
复制
    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。我们不知道为什么。任何帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-25 21:31:28

我们使用这个时代作为起点,在经过的时间戳上进行TimeDate计算。MFC不允许在时代之前的日期,因此所有UTC+都失败了日期创建。这个窃听器已经修好了。谢谢大家。

下面是导致问题的代码(已修复)。我们增加了一天的时间让所有的事情都开始工作。CTime::CTime(1970,1,1,0,0) w/ UTC+,使其在1970年伦敦1/1/1之前失败。

谢谢!

代码语言:javascript
复制
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;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36222045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档