C++/CLI でインライン asm を使用しています。恐ろしい問題の事実は、私が観察したバグである可能性があります。ある関数呼び出しから別の関数呼び出しにベクトルを渡しました。呼び出された関数内の _asm{....some assembly code here} のコード スニペット全体をコメントすると、他の関数から提供されたベクトルが使用され、ベクトル全体が正常に取得され、呼び出された関数の引数に正常にコピーされます。正しい方法で。
しかし、uncmment _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{} 内に何も書かないと、私が説明した問題が発生します。
よろしくウスマン