Я сомневаюсь, что это будет самое быстрое выполнение или наименьшее использование памяти, но я чувствую, что оно довольно короткое и простое.
int ToNumber(LPCTSTR lpMonthName)
{
COleDateTime datetime;
datetime.ParseDateTime(CString(_T("1 ")) + lpMonthName + _T("2000"),VAR_DATEVALUEONLY,LANG_USER_DEFAULT );
return datetime.GetMonth();
}
Я понял, как я это сделал в C #
DateTime.ParseExact(month, "MMMM", CultureInfo.CurrentCulture ).Month