Сравнение строк без учета регистра в VS2010 - игра с определенными операторами #if для каждой версии VS - PullRequest
0 голосов
/ 20 января 2012

Я конвертирую старый код в проект Visual Studio 2010, и следующие ошибки приводят к ошибкам ...

#if _MSC_VER >= 1200 || defined __BORLANDC__
#define cv_stricmp stricmp
#define cv_strnicmp strnicmp
#if defined WINCE
#define strdup _strdup
#define stricmp _stricmp
#endif
#elif defined __GNUC__ || defined __sun
#define cv_stricmp strcasecmp
#define cv_strnicmp strncasecmp
#else
#error Do not know how to make case-insensitive string comparison on this platform
#endif

Я не уверен, как принять эти операторы для Visual Studio 2010. КакМогу ли я сделать это?

1 Ответ

1 голос
/ 20 января 2012

Полагаю, вы не имеете в виду, что #error поражен, потому что этого не случилось бы с VC 2010.

Если вы имеете в виду предупреждения об устаревании, попробуйте вместо этого использовать _stricmp и _strnicmp:

#if _MSC_VER >= 1200 || defined __BORLANDC__
    #if _MSC_VER >= 1400
        #define cv_stricmp _stricmp
        #define cv_strnicmp _strnicmp
    #else
        #define cv_stricmp stricmp
        #define cv_strnicmp strnicmp
`   #endif
    #if defined WINCE
        #define strdup _strdup
        #define stricmp _stricmp
    #endif
#elif defined __GNUC__ || defined __sun
    #define cv_stricmp strcasecmp
    #define cv_strnicmp strncasecmp
#else
    #error Do not know how to make case-insensitive string comparison on this platform
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...