假设我有以下内联汇编代码......
_asm {
fst dword ptr [eax]mystruct1.mymember
fstp dword ptr [ebx]mystruct2.mymember
}
...但不幸的是mystruct1和mystruct2都有相同的名称,并且位于不同的名称空间中。我试过这样......
_asm {
fst dword ptr [eax]mynamespace1::mystruct.mymember
fstp dword ptr [ebx]mynamespace2::mystruct.mymember
}
......但它不起作用。是否有可能以某种方式指定命名空间而不使用c ++ using语句(这无论如何都无法工作,因为你不知何故需要更改操作之间使用的命名空间)? 不,我无法更改命名空间,结构或成员名称。
答案 0 :(得分:2)
一种解决方案是创建一个引用并改为使用它:
MyStruct& ms = mynamespace1::mystruct;
_asm {
fst dword ptr [eax]ms.mymember
fstp dword ptr [ebx]ms.mymember
}
我不知道你的情况是否可行。