社区
进程/线程/DLL
帖子详情
调用dll中的输出函数,在返回时出错?
herrycsdn
2003-04-18 11:27:40
调用dll中的输出函数,在返回时出错,
我跟踪发现就在返回后向下一句程序运行时出错,出错信息是这样的:
Debug Error
....
The value of ESP was not properly saved across a function call.....
等等
这是为什么?
...全文
47
12
打赏
收藏
调用dll中的输出函数,在返回时出错?
调用dll中的输出函数,在返回时出错, 我跟踪发现就在返回后向下一句程序运行时出错,出错信息是这样的: Debug Error .... The value of ESP was not properly saved across a function call..... 等等 这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
5525369
2003-04-23
打赏
举报
回复
参数的压栈方式和定义的不一样
Tine
2003-04-23
打赏
举报
回复
楼上说得对
In355Hz
2003-04-22
打赏
举报
回复
调用方式不正确,本来申明为 __cdecl 的函数用 __stdcall 方式调用或者反之。这会造成函数返回后栈指针 esp 没有正确复位
就像 wangbab(bab) 说的一样,一般是函数指针的申明和函数在 dll 中的申明不一致导致的
plaapin1999
2003-04-20
打赏
举报
回复
我也出现过这个问题,也想知道最后答案。
peterretep
2003-04-20
打赏
举报
回复
清栈的时候有问题,估计是你的dll的调用规范和你当前进程的调用规范不一致,你再检查一下
wangbab
2003-04-20
打赏
举报
回复
typedef int (*PAccessJPEG) (INFOSTR*);\\
改为
typedef int (WINAPI *PAccessJPEG) (INFOSTR*);
试试看
o_racle
2003-04-20
打赏
举报
回复
应该是pacjpg(&m_Info);这一句的问题,单步调试一下,看看执行到里头是什么情况?
yangsiwei
2003-04-20
打赏
举报
回复
好象是调用的参数是地址还是指针的问题
herrycsdn
2003-04-20
打赏
举报
回复
算了,AccessJPEGModule()源码太长了,
楼上说的,能不能解释一下?“dll的调用规范和你当前进程的调用规范不一致”
o_racle
2003-04-19
打赏
举报
回复
说详细说清楚点,到底是什么地方出了什么错误?这么笼统的讲大家对你的问题都不清楚,怎么帮你呢?
Cline
2003-04-19
打赏
举报
回复
把你的AccessJPEGModule()源码?
herrycsdn
2003-04-19
打赏
举报
回复
就是动态调用dll时的问题,我跟踪发现在dll的输出函数里没问题,就是返回后出错了,
我不知道怎么说得更详细,
我是这样调用的
HMODULE hMod = LoadLibrary("JpegModule.dll");
typedef int (*PAccessJPEG) (INFOSTR*);
PAccessJPEG pacjpg = (PAccessJPEG)GetProcAddress(hMod,"AccessJPEGModule");
m_Info.comm = CMD_IS_VALID_FILE;//判断指定文件是否能被本模块处理
m_Info.state = PKST_NOTVER;
m_Info.annexdata.iAnnData = 0;
pacjpg(&m_Info);
函数
指针动态
调用
dll
中
的
函数
//
函数
指针 CodeKey,保证和
dll
中
需要
调用
的
函数
申明一致 char * ( __stdcall * CodeKey)(const char *) = NULL; try { //指向
dll
中
函数
地址 CodeKey = (char* ( __stdcall* )(const char ...
调用
DLL
未导出
函数
由参数列表引发的问题
为了
调用
一个
dll
中
未导出的
函数
,首先用IDA分析它的
调用
约定和参数列表。分析出来的
函数
声明是这样的: typedef int (__thiscall* FP_SUB)(void *t, int a2, int a3) 然后用一个for循环去
调用
这个
函数
,代码逻辑...
Dev c++工具将C代码生成
dll
文件以及如何
调用
dll
文件
然后我尝试用devc++开发工具来实现这个功能,后来因为
DLL
生成了,但labview
调用
的结果和C执行的结果不一致,因此我需要再
调用
下自己生成的
DLL
是否正确来定位
出错
的环节,因此就有了生成
DLL
以及
调用
DLL
文件。...
一个DELPHI程序要
调用
DLL
,而
DLL
中
的
函数
名,参数个数,参数类型为不定
一个DELPHI程序要
调用
DLL
,而
DLL
中
的
函数
名,参数个数,参数类型为不定请求思路,一个DELPHI程序要
调用
DLL
,而
DLL
中
的
函数
名,参数个数,参数类型为不定,要
调用
的
DLL
中
的
函数
名、参数个数、参数类型要可以在窗口
中
...
c/c++开发
时
直接
调用
dll
动态库
中
的
函数
,无需使用头文件编译
可以实现windows下的exe直接加载
dll
动态库,实现exe的动态扩展
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章