DLL 调用错误 -The value of ESP

DLL 调用错误 -The value of ESP

DLL 调用错误 -The value of ESP was not properly saved across a function call

(2011-05-08 00:53:11)
var $tag='vc,dll,it';var $tag_code='9d55fc40dd77fd93eb92ada7b2acf08e';var $r_quote_bligid='494305f30100sst3';var $worldcup='0';var $worldcupball='0'; 分类: IT技术.语言s

Jeffrey Magder | reply 2003-07-08 21:53
I was having the same problem, but I just FIXED it. I was getting the same error from the following code:

HMODULE hPowerFunctions = LoadLibrary("Powrprof.dll");
typedef bool (*tSetSuspendStateSig)(BOOL, BOOL, BOOL);

tSetSuspendState SetSuspendState = (tSuspendStateSig)GetProcAddress(hPowerfunctions, "SetSuspendState");

result = SetSuspendState(false, false, false); <---- This line was where the error popped up.

After some investigation, I changed one of the lines to:

typedef bool (WINAPI*tSetSuspendStateSig)(BOOL, BOOL, BOOL);

which solved the problem. If you take a look in the header file where SetSuspendState is found (powrprof.h, part of the SDK), you will see the function prototype is defined as:

BOOLEAN WINAPI SetSuspendState(BOOLEAN, BOOLEAN, BOOLEAN);

So you guys are having a similar problem. When you are calling a given function from a .dll, its signature is probably off. (In my case it was the missing WINAPI keyword).

Hope that helps any future people! :-)

Cheers. 
 
 Dheeraj | reply 2003-08-21 23:25  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/HappySong/archive/2005/04/07/339707.aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值