问题描述
如果需要,我可以与您分享一个测试解决方案。但是采用默认的 Dialog MFC 项目并重命名窗口上的 STATIC 控件并将其映射到变量。在 OnInitDialog
中执行以下操作:
VERIFY(datToday.GetAsSystemTime(sysTime));
int i = GetDateFormatEx(_T("ln"),NULL,&sysTime,_T("d/MM"),m_strDate.GetBufferSetLength(_MAX_PATH),_MAX_PATH,nullptr);
if (i == 0)
{
AfxMessageBox(GetLastErrorAsstringEx(::GetLastError()));
}
m_strDate.ReleaseBuffer();
UpdateData(FALSE);
CString GetLastErrorAsstringEx(DWORD dwError)
{
LPVOID lpMsgBuf;
CString strError;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYstem |
FORMAT_MESSAGE_IGnorE_INSERTS,nullptr,dwError,MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),// Default language
(LPTSTR)&lpMsgBuf,nullptr);
strError = (LPTSTR)lpMsgBuf;
LocalFree(lpMsgBuf);
return strError;
}
它应该显示 Lingala 的日期(尽管只是数字)。在 Windows 10 上没问题,但在 Windows 7 上会引发错误:
根据网站:
ERROR_INVALID_ParaMETER
。任何参数值无效。
我知道还有其他格式化日期的方法,但我的应用程序支持 50 多种语言,使用 GetDateFormatEx
是最好的恕我直言。在实际示例中,许多语言具有不同的格式字符串,其中包括月份名称。根据 Microsoft 网站,自 Windows Vista 以来就支持此方法,那么为什么它会在用户 Windows 7 PC 上失败?是否需要额外的资源,或者该操作系统实际上不支持 Lingala?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)