向dll中传参数是引起malloc错误

powerhome 2004-07-21 05:39:42
dll声明
extern "C" __declspec(dllexport) void ShowMap(char* szText)

dll调用
typedef void (FAR __cdecl *MAPDLL_SHOW) (char* szText);
typedef void (FAR __cdecl *MAPDLL_CLOSE) ();

MAPDLL_SHOW lpproc;
lpproc = (MAPDLL_SHOW)GetProcAddress (m_hmod,"ShowMap");

CString szText = m_mailItem.m_szBody;
LPTSTR lpsz =(LPTSTR)(LPCTSTR)szText;

lpproc(lpsz);

错误提示:
Unhandled exception at 0x10007c29 in OutlookStyleUI.exe: 0xC0000005: Access violation reading location 0x00000194.

把参数换成CString,CString&都不行
...全文
47 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyelf 2004-07-21
  • 打赏
  • 举报
回复
1、用def文件导出接口,这样,接口的名称才不会被vc自动改变
2、接口声明要一致:
extern "C" __declspec(dllexport) void _cdecl ShowMap(char* szText)
holyeagle 2004-07-21
  • 打赏
  • 举报
回复
lpproc = (MAPDLL_SHOW)GetProcAddress (m_hmod,"ShowMap");后先判断lpproc是否为空,有可能没有找到函数入口
落入凡间的猪 2004-07-21
  • 打赏
  • 举报
回复
你这样调用看看,lpproc("hello");

我觉得是你的cstring 转换称char*不对
lianglp 2004-07-21
  • 打赏
  • 举报
回复
如果GetProcAddress (m_hmod,"ShowMap");成功是到函数据地址值,那么
是否是你的ShowMap()函数本身有问题呢?

15,471

社区成员

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

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