易语言调用DLL命令后发现堆栈错误怎么解决

求解

堆栈错误一般是用因为用stdcall调用cdecl的函数。
在调用cdecl的函数前插入这句代码,就能自动平衡堆栈
-----------------------------------------
置入代码 ()
---------------------------------------------

就是该成:
----------------
置入代码 (“参考上面,不能用变量”)
test ()
------------------

最简单的还是改DLL的调用约定为 __stdcall

如果你还要源代码,请直接在百度发消息给我。
因为我懒得登陆邮箱了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-28
.版本 2

.DLL命令 GetWindowLongA, 整数型, "user32", "GetWindowLongA", , 从指定窗口的结构中取得信息 由nIndex决定。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲为其获取信息的窗口的句柄
.参数 属性, 整数型, , 欲取回的信息,可以是下述任何一个常数:;GWL_EXSTYLE:扩展窗口样式;GWL_STYLE:窗口样式;GWL_WNDPROC:该窗口的窗口函数的地址;GWL_HINSTANCE:拥有窗口的实例的句柄;GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值;GWL_ID:对话框中一个子窗口的标识符;GWL_USERDATA:含义由应用程序规定;DWL_DLGPROC:这个窗口的对话框函数地址;DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值;DWL_USER:含义由应用程序规定;

.DLL命令 SetWindowLongA, 整数型, "user32", "SetWindowLongA", , 在窗口结构中为指定的窗口设置信息 指定数据的前一个值
.参数 hwnd, 整数型, , 欲为其取得信息的窗口的句柄
.参数 nIndex, 整数型, , 请参考GetWindowLong函数的nIndex参数的说明
.参数 dwNewLong, 整数型, , 由nIndex指定的窗口信息的新值;

.DLL命令 API_SetLayeredWindowAttributes, 整数型, "user32.dll", "SetLayeredWindowAttributes"
.参数 hwnd, 整数型
.参数 crKey, 整数型
.参数 bAlpha, 字节型
.参数 dwFlags, 整数型
相似回答