0x80048836 больше, чем LONG_MAX для вашей системы (2147483647L), что равно (0x7FFFFFFF).Согласно msdn "когда представление вызовет переполнение, в этом случае оно возвращает LONG_MAX или LONG_MIN"
Так что в вашем случае вы получите LONG_MAX, возвращенный как ваш результат.
фактический тип возвращаемого значения функцииобъявляется как длинный wcstol (...).long не обязательно имеет размер 32 бита, это будет зависеть от вашей системы.
В этом случае тип возвращаемого значения является знаковым и 32-битным, поэтому наибольшее целое число со знаком, которое поместится в 32-битном формате, равно 7FFFFFFF.От 1 до LONG_MIN
Между прочим, я считаю, что «HRESULT hr = wcstol ...» будет неправильным, поскольку тип возвращаемого значения wcstol - это (подписано) long, но HRESULT имеет значение ULONG (без знака long).Это может быть проблемой в зависимости от того, как вы используете эти данные.