Как отключить строгую проверку типов c ++ в VS - PullRequest
1 голос
/ 14 июля 2009

При переносе проекта unix, разработанного на языке C, в Windows и компиляции его с VS 2005, компилятор сообщает об ошибках, связанных с неправильным преобразованием типов, таких как «не удается преобразовать« const char * »в« char * »». Можно ли отключить эту строгую проверку через параметры компилятора.

-Спасибо за внимание

Ответы [ 3 ]

1 голос
/ 14 июля 2009

Если ваш код является допустимым C (в частности, C89, так как VC ++ не поддерживает C99), он будет автоматически отключен, если вы назовете файл с расширением .c или в свойствах проекта установите для него значение «Компилировать». как C "

Это должно отключить все специфичные для C ++ функции и проверки типов.

1 голос
/ 14 июля 2009

Я почти уверен, вам нужно только установить параметр командной строки «Compile as C» (/ TP). Я не совсем знаком с ANSI-C (по сравнению с ANSI-C ++), но я настоятельно рекомендую преобразовать его в безопасный тип независимо Зачем возвращать const, а затем игнорировать этот факт?

0 голосов
/ 14 июля 2009

Я не уверен, что вы можете - это может быть в том случае, если код C недействителен (а неправильно используемый вами компилятор Unix это позволяет). Вы можете отключить предупреждения, но я не думаю, что вы можете отключить определенные ошибки.

Если вы этого еще не сделали, вы можете изменить параметры проекта для компиляции как C вместо C ++ (Prpoerties -> Config Properties -> C / C ++ -> Advanced), но я не думаю, что это поможет.

Если вы можете скомпилировать как C ++, const_cast может помочь: http://msdn.microsoft.com/en-us/library/bz6at95h(VS.80).aspx

...