LoadFrame (MFC) 仅在澳大利亚失败
LoadFrame (MFC) failing only in Australia
我们的团队有一个问题困扰着我们。
以下代码returns错误:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
{
AfxMessageBox(GetStr(IDS_MAINFRM_FAIL_TO_LOAD));
ASSERT(FALSE);
return FALSE;
}
我们正在使用 VS2010 进行编译,并且确实安装了 RogueWave Stingray 组件。 CMainFrame 是一个 CBCGPMDIFrameWnd,它基于 CMDIFrameWnd,由 BCGSoft.
制作
我们的软件 运行 已在全球约 100 台机器上运行,没有任何问题。它在 Windows 7-10 x86 和 x64 上 运行。它一直有效,直到本周。澳大利亚米尔迪拉的一小群人报告了一个问题。对于所有这些 运行 WIN7x86Enterprise 和 Win10x64Home,上面的代码片段 returns 是错误的。我亲自检查了他们的一台机器(Win10x64Home),一切似乎都井井有条。
我已经为该项目尝试了 deleting the RES and APS files。那没有帮助。
有人知道问题出在哪里吗?我愿意接受有根据的猜测。
提前致谢!
PS:新信息:
它看起来像是一个时间问题。在计算机上,所有 UTC+ 都失败,而 UTC0 和 UTC- 通过。我们不确定为什么。任何帮助,将不胜感激。谢谢!
我们正在使用纪元作为起点对经过的时间戳进行 TimeDate 计算。 MFC 不允许纪元之前的日期,因此所有 UTC+ 都无法创建日期。此错误已修复。谢谢大家。
这是导致问题的代码(已修复)。我们增加了一天让一切正常工作。 CTime::CTime(1970,1,1,0,0,0) w/ UTC+,在 1970 年 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;
我们的团队有一个问题困扰着我们。
以下代码returns错误:
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
{
AfxMessageBox(GetStr(IDS_MAINFRM_FAIL_TO_LOAD));
ASSERT(FALSE);
return FALSE;
}
我们正在使用 VS2010 进行编译,并且确实安装了 RogueWave Stingray 组件。 CMainFrame 是一个 CBCGPMDIFrameWnd,它基于 CMDIFrameWnd,由 BCGSoft.
制作我们的软件 运行 已在全球约 100 台机器上运行,没有任何问题。它在 Windows 7-10 x86 和 x64 上 运行。它一直有效,直到本周。澳大利亚米尔迪拉的一小群人报告了一个问题。对于所有这些 运行 WIN7x86Enterprise 和 Win10x64Home,上面的代码片段 returns 是错误的。我亲自检查了他们的一台机器(Win10x64Home),一切似乎都井井有条。
我已经为该项目尝试了 deleting the RES and APS files。那没有帮助。
有人知道问题出在哪里吗?我愿意接受有根据的猜测。
提前致谢!
PS:新信息: 它看起来像是一个时间问题。在计算机上,所有 UTC+ 都失败,而 UTC0 和 UTC- 通过。我们不确定为什么。任何帮助,将不胜感激。谢谢!
我们正在使用纪元作为起点对经过的时间戳进行 TimeDate 计算。 MFC 不允许纪元之前的日期,因此所有 UTC+ 都无法创建日期。此错误已修复。谢谢大家。
这是导致问题的代码(已修复)。我们增加了一天让一切正常工作。 CTime::CTime(1970,1,1,0,0,0) w/ UTC+,在 1970 年 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;