void ConvertDateIntoSystemFormat(std::wstring dateModified,DATE& date)
{
SYSTEMTIME systemTime;
memset(&systemTime, 0, sizeof(systemTime));
sscanf_s(ConvertWstringToCharStar(dateModified), "%d-%d-%dT%d:%d:%d.%dZ",
&systemTime.wYear, &systemTime.wMonth, &systemTime.wDay, &systemTime.wHour, &systemTime.wMinute, &systemTime.wSecond, &systemTime.wMilliseconds);
SystemTimeToVariantTime(&systemTime, &date);
}
Вот мой код. Он преобразует строку, содержащую дату и время, в тип DATE
.
Тем не менее, когда я запускаю эту часть кода, он всегда выбрасывает исключения, которые говорят «переполнение буфера», когда отладчик покидает область действия этой функции.
Я также пытался изменить его на void ConvertDateIntoSystemFormat(std::wstring dateModified,DATE* date)
и попытаться выделить память для даты при передаче этой функции, или попытался использовать LPSYSTEMTIME
вместо SYSTEMTIME
, или попытался DATE ConvertDateIntoSystemFormat(std::wstring dateModified)
с объявлением DATE date
внутри функции, но ни одного из них работает, проблема переполнения буфера все еще возникает.
Как решить эту проблему?