Я компилирую в соответствии с Linux (GCC 4.4.2) и Windows VS C ++ Express Edition 2008
Я в настоящее время компилирую под Windows XP Pro 32 бита и добавил это к моему исходному коду.
#if defined( WIN32 )
/* Do windows stuff here */
#endif
Однако код в, если оператор отключен (grayed). Однако, если я делаю следующее:
#if defined( _MSC_VER )
/* Do windows stuff here */
#endif
Если код оператора включен.
Я просто задаюсь вопросом, что должно я использовать. Я видел, что многие программисты используют WIN32. Однако, кажется, не работает на меня. Я должен использовать _MSC_VER вместо этого?
Большое спасибо за любой совет,
Нет WIN32
. Если вы видели, что он используется где-то еще, либо это неправильно, либо код где-то явно определяет сам этот макрос.
Вам нужен _WIN32
. См. https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros для получения списка предопределенных макросов в компиляторе Microsoft.
Вместо этого используйте _WIN32. Парсер IntelliSense в VS2008 вызывает затруднения, это не обязательно решит вашу проблему. Он был полностью переписан в VS2010.