VS 2010 C ++ - Ошибки преобразования - PullRequest
1 голос
/ 27 марта 2012

Я написал приложение на C ++ и скачал некоторые примеры кода из Интернета (например, this и this ), но когда я пытаюсь скомпилировать код, я получаю такие ошибки компиляции, как:

ошибка C2664: «CertNameToStrW»: невозможно преобразовать параметр 4 из «CHAR [1000]» в «LPWSTR»

ошибка C2664: «отправить»: невозможно преобразовать параметр 2 из'BYTE [200]' в 'const char *'

и т. Д.

Конечно, я могу решить это путем явного преобразования, как предложено в this вопрос.но я хочу спросить, разумно ли такое поведение?Я предполагаю, что ребята из Microsoft компилируют свой код, прежде чем загружать его в MSDN.Что мне не хватает?Может мне что то установить?Может кто-нибудь, пожалуйста, помогите?

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Это вызвано неправильным набором символов, см. Здесь:

http://www.ucancode.net/faq/Visual_c_character_sets-Unicode-MBCS.htm

0 голосов
/ 27 марта 2012

Вам необходимо отключить Unicode в настройках проекта Project Properties -> General -> Project Defaults -> Character Set или использовать функции Win32 API с постфиксом A, например CertNameToStrA вместо CertNameToStr.

...