Microsoft постепенно работает над тем, чтобы сделать имена, используемые в их заголовках и библиотеках C / C ++, более совместимыми со стандартами (хотя они не обязательно делают то же самое для имен в заголовках и библиотеках SDK - тонко, но важное различие). Таким образом, вы обнаружите, что все больше и больше имен, которых нет в стандарте, имеют префикс подчеркивания.
Но MS часто предоставляет возможность использовать старые, не соответствующие стандартам имена для обратной совместимости. Вы должны иметь возможность использовать имя SH_DENYRW
в MSVC или Borland, если только вы не указываете компилятору использовать строгое соответствие стандартам (например, с опцией /Za
), поскольку MSVC определяет следующее в share.h
:
#if !__STDC__
/* Non-ANSI names for compatibility */
#define SH_DENYRW _SH_DENYRW
#define SH_DENYWR _SH_DENYWR
#define SH_DENYRD _SH_DENYRD
#define SH_DENYNO _SH_DENYNO
#endif
#endif /* _INC_SHARE */