dll中输出一个字符串,exe中得到这个字符串。
 dll:
   extern "C" _declspec(dllexport) int __stdcall CselectPathShel::Path(CHAR  *path)
{
   .......
}exe:
 CHAR  m_path[260] ;
 m_path[0]=0; Path(m_path);在dll中的程序都是运行正常的,但是在exe中得到的参数m_path前面都是乱码,m_path[20]之后才是应该从dll得到的字符串,请问是什么问题,应该怎么改??

解决方案 »

  1.   

    调试看看DLL中该字符串前20个字符的值是什么。
      

  2.   

    在dll中path“abc”,而在exe中m_path  “烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫abc”
      

  3.   

    那在EXE先将该字符串赋成空值。
      

  4.   

    每次在运行到Path(m_path)是都有一个中断的对话框弹出来,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.
      

  5.   

    我已经解决了,是我的函数应该定义在global里