Run-Time Check Failure #0 - 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 convention with a function pointer declared
with a different calling convention.
动态加载 调用一个 dll 文件,在调用结束退出 dll 中的函数时出现上面的错误。
如果编译时, dll 文件以 *.lib 链接库导入程序直接编译,一切都是正常的。
dll 中有些函数调用是正常的,有些函数出现上面的错误。最大的可能是什么原因引起的?谢谢。

解决方案 »

  1.   

    This is usually a result of calling a function
    declared with one calling convention with a function pointer declared
    with a different calling convention.
     这里给了你答案啊···
      

  2.   

    调用约定出错。试着全改成_stdcall
      

  3.   

    3楼,顶一下。LZ需要确定DLL函数的调用预定,与函数声明的约定是否一致。
      

  4.   

    可能是头文件中的函数的声明与dll中的函数的实现不一致了,比如头文件声明的函数带3个参数,而在函数实现的地方却是4个参数。
      

  5.   


    嗯  原来也遇到过的
    The __stdcall calling convention is used to call Win32 API functions