Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 标识符"__readgsqword";未定义-Visual Studio 2017_C++_Visual C++_X86 64_Intrinsics_Memory Segmentation - Fatal编程技术网

C++ 标识符"__readgsqword";未定义-Visual Studio 2017

C++ 标识符"__readgsqword";未定义-Visual Studio 2017,c++,visual-c++,x86-64,intrinsics,memory-segmentation,C++,Visual C++,X86 64,Intrinsics,Memory Segmentation,我试图在Visual Studio 2017中使用\uuuuu readgsqword函数读取内存,但我收到一个错误,即标识符\uuuuu readgsqword未定义,即使我已经包含intrin.h #include "stdafx.h" #include <intrin.h> int main() { __readgsqword(88); return 0; } #包括“stdafx.h” #包括 int main() { __readgs

我试图在Visual Studio 2017中使用
\uuuuu readgsqword
函数读取内存,但我收到一个错误,即标识符
\uuuuu readgsqword
未定义,即使我已经包含intrin.h

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

int main()
{
    __readgsqword(88);
    return 0;
}
#包括“stdafx.h”
#包括
int main()
{
__readgsqword(88);
返回0;
}

我不明白为什么它说未定义,即使它是在intrin.h中定义的,但它仅在x64模式下可用。如果您没有更改解决方案中的CPU体系结构,它将不可用。

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

顺便说一句,即使对于较小的操作数大小,MS也仅为64位模式记录这些内部函数。这很奇怪,因为底层指令在32位模式下工作相同。您可能希望只有
\uuu readgsqword
不可用(因为它还需要64位操作数大小,或MMX或SSE,才能在一条指令中执行)。顺便说一句,即使是较小的操作数大小,MS也只为64位模式记录这些内部函数。这很奇怪,因为底层指令在32位模式下工作相同。您可能希望只有
\uu readgsqword
不可用(因为它还需要64位操作数大小,或者MMX或SSE,才能在一条指令中执行)。