none
win32 dll 函数指针的导出问题??? RRS feed

  • 问题

  • 大家好,我自己写了一个win32动态库,当调用的地方涉及到一个函数指针的时候,出现下面的错误:

    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.

    遇到这类问题应该怎么处理,谢谢大家。
    2010年8月27日 8:55

答案

  • 多谢楼上两位了,该问题已经搞定了。

    我在这个dll中定义了一些函数指针,需要在外面使用,后面在函数指针前加上关键字__stdcall就搞定这个问题了。

    • 已标记为答案 Aaron Zhu 2010年8月31日 2:58
    2010年8月31日 2:57

全部回复

  • 请问你是传递了一个指针参数给你动态库中的导出函数? 还是你在导出函数之内使用了指针变量呢?

    如果给导出函数传递指针参数, 那么要注意你指针指向的那块内存是在哪里创建的?堆?堆栈?还是全局堆?

    2010年8月27日 9:23
    版主
  • 把代码贴出来么,这个错很常见
    0xBAADF00D
    2010年8月30日 6:59
    版主
  • 多谢楼上两位了,该问题已经搞定了。

    我在这个dll中定义了一些函数指针,需要在外面使用,后面在函数指针前加上关键字__stdcall就搞定这个问题了。

    • 已标记为答案 Aaron Zhu 2010年8月31日 2:58
    2010年8月31日 2:57