【问题标题】:Identifier "__readgsqword" is undefined - Visual Studio 2017标识符“__readgsqword”未定义 - Visual Studio 2017
【发布时间】:2018-11-13 08:54:54
【问题描述】:

我正在尝试使用 Visual Studio 2017 中的 __readgsqword 函数读取内存,但我收到一条错误消息,指出标识符 __readgsqword 未定义,即使我已经包含了 intrin.h。

#include "stdafx.h"
#include <intrin.h>

int main()
{
    __readgsqword(88);
    return 0;
}

我不明白为什么它说未定义,即使它是在 intrin.h 中定义的

【问题讨论】:

    标签: c++ visual-c++ x86-64 intrinsics memory-segmentation


    【解决方案1】:

    它仅在 x64 模式下可用。如果您没有更改解决方案中的 CPU 架构,它将不可用。

    【讨论】:

    • 顺便说一句,即使对于较小的操作数大小,MS 也只为 64 位模式记录这些内在函数。 docs.microsoft.com/en-us/cpp/intrinsics/…。这很奇怪,因为底层指令在 32 位模式下的工作方式相同。您可能希望只有 __readgsqword 不可用(因为它还需要 64 位操作数大小,或 MMX 或 SSE,才能在单个指令中执行)。
    猜你喜欢
    • 2016-12-04
    • 2020-03-15
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2013-07-27
    • 2017-07-28
    • 2016-02-15
    相关资源
    最近更新 更多