Как устранить ошибку C2664 _vswprintf_c_l в Visual Studio 2005? - PullRequest
1 голос
/ 13 июля 2011

Показана ошибка:

Error   11  error C2664: '_vswprintf_c_l' : cannot convert parameter 4 from 'void *' to '_locale_t' C:\Program Files\Microsoft Visual Studio 8\VC\include\swprintf.inl  41

Он находит файл- C:\Program Files\Microsoft Visual Studio 8\VC\include\swprintf.inl, который, я думаю, является системным файлом. Итак, как решить?

Платформа: Visual Studio 2005 Версия 8.0.50727.762

1 Ответ

3 голосов
/ 31 января 2012

Я также видел эту проблему в коде, с которым я имел дело.Проблема заключалась в том, что stdlib.h включался после локального заголовка, который, вероятно, включал какой-то другой заголовок c или c ++.

неправильный порядок:

#include "someheaderofmine.h"//includes several other headers
#include <stdlib.h>

, только изменение порядка включения исправило мойпроблема:

#include <stdlib.h>
#include "someheaderofmine.h"

похоже, такая же проблема может возникнуть, если вы используете string.h

...