我在主程序和dll之间传递数据,发现传出的数据和dll中要传出的数据不同。
请问是什么原因造成的。
谢谢!!!

解决方案 »

  1.   

    debug dll,中断时查看指针指向。
      

  2.   

    比如说:在DLL库中有一个函数 aaa(char *xv, int *sl)
    在主程序时xv 的值是"abcdefg",到了链接库中vx的值变得不知所云,传出是也是这样。
    单独调试DLL库是好的,怀疑在主程序中有内存泄漏,或溢出的问题,但无法定位,谁有什么好方法。
    谢谢!谢谢
      

  3.   

    看来你的主程序与DLL程序不是同一种语言了。与参数传递顺序有关。这样,你是否在主程序声明时和DLL输出函数前加了“stdcall”标识符??
      

  4.   

    如:VC写DLL
    BOOL  __stdcall FindRelease(char* hSearch)
    {
        MessageBox(NULL,hSearch,NULL,0);
        return TRUE;
    }delphi调用:
    function FindRelease(hSearch:PChar):Boolean;stdcall;external '库名';
      

  5.   

    抱歉,我说得不够清楚,上面只是举例说明,并非实际的函数。
    我确实是都在VC中使用。DLL是MFC扩展DLL调用。