Visual Studio 2010 — исправление переопределения макросов в переполнении стека

поскольку intsafe.h а также stdint.h оба определяют INT8_MIN, Таким образом, VS2010 генерирует предупреждение, которое говорит:

    1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
1>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\intsafe.h(144) : see previous definition of 'INT8_MIN'

Есть ли способ исправить это предупреждение в VS2010.

1

Решение

Чтобы просто убрать сообщение, вы можете добавить строку

#pragma warning (disable : 4005)

до вашего первого #include заявление

Но это не значит, что вы не должны обращать внимания на предупреждение. Посмотрите, можете ли вы обойтись без одного из двух заголовочных файлов, и если нет, то точно определите, какое определение использует ваша программа.

1

Другие решения

Видимо это ошибка в VS2010. В общем, этого можно избежать, но в приложениях MFC в принципе невозможно включить stdint.h в любой другой код, не ударив по нему.

Я просто сделал это в верхней части файла, который жаловался:

#pragma warning (push)
#pragma warning (disable : 4005)
#include <intsafe.h>
#include <stdint.h>
#pragma warning (pop)

Это убирает эти заголовки, так сказать, и позволяет вам продолжить свой день.

4

По вопросам рекламы [email protected]