1
比方说,我有以下的内联汇编代码...内联汇编使用命名空间
_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++使用语句(这不会工作,因为你需要改变操作之间使用的命名空间)? 不,我不能更改命名空间,结构或成员名称。
1.为什么使用内联汇编? 2.您可能需要使用错位的名称,这甚至会进一步降低可移植性。 –
尝试在函数的本地范围内使用'typedef's。 –
我正在使用内联程序集,因为我的工作需要我。这是一个Windows驱动程序,所以我不在乎可移植性。不,你不需要使用错位的名字;其他指令接受命名空间(例如:'jmp [mynamespace :: mystruct :: mystaticmember]')。 – kingofx87