关于exe调用dll问题

zying1013 2007-01-04 12:47:59
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得到的字符串,请问是什么问题,应该怎么改??

...全文
301 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
robot19801980 2007-02-06
  • 打赏
  • 举报
回复
空串
YouTuBe 2007-01-04
  • 打赏
  • 举报
回复
zying1013 2007-01-04
  • 打赏
  • 举报
回复
我已经解决了,是我的函数应该定义在global里
zying1013 2007-01-04
  • 打赏
  • 举报
回复
每次在运行到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.
syy64 2007-01-04
  • 打赏
  • 举报
回复
那在EXE先将该字符串赋成空值。
zying1013 2007-01-04
  • 打赏
  • 举报
回复
在dll中path“abc”,而在exe中m_path “烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫abc”
syy64 2007-01-04
  • 打赏
  • 举报
回复
调试看看DLL中该字符串前20个字符的值是什么。

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧