error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字

发布于 2020-05-06  64 次阅读


问题描述:

x86平台转x64平台后编译出现错误:

error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字

error C2065: “call”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“dummy”的前面)

error C2065: “dummy”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“dummy”的前面)

error C2065: “pop”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“ecx”的前面)

error C2065: “ecx”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“sub”的前面)

error C2065: “sub”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“ecx”的前面)

error C2065: “ecx”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“mov”的前面)

error C2065: “mov”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“pData”的前面)

error C2065: “ecx”: 未声明的标识符

error C2143: 语法错误 : 缺少“;”(在“}”的前面)

error C4235: 使用了非标准扩展: 不支持在此结构上使用“_asm”关键字

error C2065: “mov”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“esp”的前面)

error C2065: “esp”: 未声明的标识符

error C2065: “esp”: 未声明的标识符

error C2146: 语法错误: 缺少“;”(在标识符“DllPath”的前面)

error C2039: “Eip”: 不是“_CONTEXT”的成员


解决方法:

x64不再支持内联汇编


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。