chkesp.c のアサート

VC++6.0 で、次のようなアサートが出た。

Module:XXXXX

File: i386\chkesp.c

Line: 42

The value of ESP was not properly saved across a function call.

This is usually a result of calling a function declared with one calling conversion with a function pointer declared with a different calling conversion.

DLL の関数へのポインタを GetProcAddress で取得したときに、型が間違っていたのが原因っぽい。

今回は WINAPI を抜かしてしまった。初めてであったアサートなだけに驚いてしまった。