我在 C++/CLI 中使用内联 asm。可怕的问题实际上可能是我观察到的错误。我将向量从一个函数调用传递给另一个。如果我在被调用函数中注释 _asm{....some assembly code here} 的整个代码片段,其中使用了从其他函数提供给它的向量,那么没有问题整个向量会很好并成功复制到被调用函数的参数以正确的方式。
但是如果取消 _asm{} 我的意思是如果我在被调用函数中使用 _asm{} 补丁,它会破坏对象的整个向量,事实上整个对象会破坏,其中包含向量和其他字符串数据,它只显示对象内部的每个数据,例如 npos=4294967295 .
它是什么?为什么会这样?是 CLI 造成问题还是我使用内联 asm 的方式错误?
请帮帮我,因为我被困在这里。
strParamType = strReturnType;
if(strParamType.find("IDispatch")!=string::npos)
{
IDispatch* pIDispatch;
_asm
{
mov esi,esp
lea eax,[pIDispatch]
push eax
}
}
在这里,如果我在 _asm{} 内根本没有写任何东西,那么就会出现我描述的问题。
问候乌斯曼