gpt4 book ai didi

c - _fsopen 用于 Borland c++ builderX 2003 和 MVS2008 中的 C

转载 作者:行者123 更新时间:2023-11-30 18:09:13 27 4
gpt4 key购买 nike

使用 MVS2008,此行工作正常:

_fsopen(file_name, "wb+", _SH_DENYRW);

2003 年的 Borland C++builderX 提示参数 _SH_DENYRW。我改为

_fsopen(file_name, "wb+", SH_DENYRW);

删除下划线,Borland 现在编译得很好。我正在做的事情好吗?我在网络上的某个地方看到了这个修改。

非常感谢..

最佳答案

随着时间的推移,微软一直在一点一点地努力,使他们的 C/C++ 头文件和库中使用的名称更加符合标准(尽管他们不一定对 SDK 头文件和库中的名称做同样的事情 - 一个微妙但重要区别)。因此,您会发现越来越多不在标准中的名称都带有下划线前缀。

但是 MS 通常提供使用旧的、不符合标准的名称以实现向后兼容性的功能。您应该能够在 MSVC 或 Borland 中使用 SH_DENYRW 名称,除非您告诉编译器使用严格的标准合规性(例如,使用 /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 */

关于c - _fsopen 用于 Borland c++ builderX 2003 和 MVS2008 中的 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594937/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com