C++ 标识符"__readgsqword";未定义-Visual Studio 2017
我试图在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
\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,才能在一条指令中执行)。