私の問題は、MSVS 2010 C++ コンパイラが別の dll からランタイム (GetProcAddress+GetModuleHandle) で解決された関数呼び出しから戻った後、コンパイラがこのようにスタックを整列しようとする方法でコードを生成していることです。
CALL DWORD PTR DS:[2000367C] ; apiresolvedinruntime.dll
ADD ESP,12 ; <- this is the stack alignment
もちろん、これは戻りアドレスを上書きしており、プログラムがクラッシュします。実際にすべきではないのにコンパイラがスタックを整列させる理由を誰かが説明してくれますか?