在 Windows 7 上为林加拉语使用 GetDateFormatEx 的问题

问题描述

如果需要,我可以与您分享一个测试解决方案。但是采用认的 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 上会引发错误

enter image description here

根据网站:

ERROR_INVALID_ParaMETER。任何参数值无效。

我知道还有其他格式化日期的方法,但我的应用程序支持 50 多种语言,使用 GetDateFormatEx 是最好的恕我直言。在实际示例中,许多语言具有不同的格式字符串,其中包括月份名称。根据 Microsoft 网站,自 Windows Vista 以来就支持方法,那么为什么它会在用户 Windows 7 PC 上失败?是否需要额外的资源,或者该操作系统实际上不支持 Lingala?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)