2015-06-10 2 views

ответ

4

Как уже упоминалось ранее, вы используете Unicode. Вы должны использовать Unicode для других функций:

long ldata = _wtol(str);

Где-то внутри CString деклараций что-то вроде этого:

#ifdef UNICODE 
#define CString CStringW 
#else 
#define CString CStringA 
#endif 

При компиляции проекта в Unicode, CString становится широким голец CStringW, поэтому у вас есть для использования широкоугольной версии atol, которая равна _wtol и такая же для любой другой строковой функции.

1

https://msdn.microsoft.com/en-us/library/awkwbzyc.aspx из

"Для того, чтобы использовать объект CString как строка C-стиля, приведение объекта к LPCTSTR."

str Так должен быть преобразован в LPCTSTR так: atol((LPCTSTR)str);

Смежные вопросы