поскольку 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.
Чтобы просто убрать сообщение, вы можете добавить строку
#pragma warning (disable : 4005)
до вашего первого #include
заявление
Но это не значит, что вы не должны обращать внимания на предупреждение. Посмотрите, можете ли вы обойтись без одного из двух заголовочных файлов, и если нет, то точно определите, какое определение использует ваша программа.
Видимо это ошибка в VS2010. В общем, этого можно избежать, но в приложениях MFC в принципе невозможно включить stdint.h в любой другой код, не ударив по нему.
Я просто сделал это в верхней части файла, который жаловался:
#pragma warning (push)
#pragma warning (disable : 4005)
#include <intsafe.h>
#include <stdint.h>
#pragma warning (pop)
Это убирает эти заголовки, так сказать, и позволяет вам продолжить свой день.