微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 VC6 迁移到 VS2019 时未定义 _segment

如何解决从 VC6 迁移到 VS2019 时未定义 _segment

我正在将一个 Windows 项目从 VC6 迁移到 VS2019,但出现错误

E0020 标识符“_segment”未定义

我试图找到 _segment 定义,但没有找到。所以,我想知道 _segment 是否可能是 VC6 中的关键字。但是,我仍然在 Google 中找不到任何东西。

知道如何修复错误吗?谢谢。

代码是:

#ifndef _MSC_Ver
#define _MSC_Ver
#endif

/* MS-C  ?? */
#ifdef  _MSC_VER
_segment SegDefine,SegType,SegSym,SegCode;
#endif

#define ALLOC_C
#include "common.h"
#include <malloc.h>
#include "extern.h"

#ifdef  MSDOS
#include <dos.h>
#ifndef __WATCOMC__
#include <memory.h>
#endif
#endif

/* MM(????)?    */
#define MaxClass    8

#ifdef  _MSC_VER    /* MS-C  ?? */

/* FARBased ? */
static USHORT       mmFarSeg[MaxClass];         /* ??         */
static USHORT       mmFarBase[MaxClass];        /*          */
static USHORT       mmFarOrg[MaxClass];         /* ??        */
static USHORT       mmFarSize[MaxClass];        /*          */

解决方法

_segment 是 16 位 MSC 6 和 VC 1.x(不是 VC 6)中的关键字,与 x86 memory segmentation_based 指针相关.从 VC 2.0 开始,该关键字在 32 位版本的 VC 中已停用。来自微软的Q67882

以下关键字是在 Microsoft C 版本 6.0 中首次引入的:

_based
_segment

[...]

注意:在 Microsoft Visual C++ 32 位版本 2.0 版中,_segment 关键字 已删除,__based 关键字的功能已更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。