Jump to content

Problem with the stack corruption error.


Recommended Posts

So I keep getting the new stack corruption error with a lot of my DllCalls.

For example:

$av_Time = DllCall('CrtDll.dll', 'long', 'time', 'ptr', 0)
MsgBox(0, 'UNIX Timestamp:', $av_Time[0])

This works fine with v3.2.2.0. But with the new beta, I get the (very large) error about stack corruption.

Line 1 (File "C:\Program Files\AutoIt3\Hmm... Strange.au3"):

$av_Time = DllCall('CrtDll.dll', 'long', 'time', 'ptr', 0)

Error: AutoIt has detected the stack has become corrupt.

Stack corruption typically occurs when either the wrong calling convention is used or when the function is called with the wrong number of arguments.

AutoIt supports the __stdcall (WINAPI) and __cdecl calling conventions. The __stdcall (WINAPI) convention is used by default but __cdecl can be used instead. See the DllCall() documentation for details on changing the calling convention.

Am I doing something wrong (that I've been doing wrong all along?) with my dllcall. I looked it up and as near as I can tell I've got it right.

I thought about posting this to Bug's, but decided to wait in case I'm just messing it up myself.

*Edit: Removed a bad word. Shouldn't post while tired and frustrated.

Edited by Saunders
Link to comment
Share on other sites

So I keep getting the new stack corruption error with a lot of my DllCalls.

For example:

$av_Time = DllCall('CrtDll.dll', 'long', 'time', 'ptr', 0)
MsgBox(0, 'UNIX Timestamp:', $av_Time[0])oÝ÷ Ù8b³
+Çâì"¶÷ÛmºÜ"¶azw°mëZ"­¶¯z¼¥j¸zºè­¦èºÛ-iÉ¢ºî¦Ø¨   v§Ê&zØb+¢x-«HßÛÞmç§v§
襩h"¶²vYjYHº¹

That's working and I assume Valik will confirm. It is the right way to call this Dll :whistle:

Link to comment
Share on other sites

:whistle: Oh I see... glad I didn't post this in bugs then. Argh, kind of a pain though, that's a fair number of dllcalls I'm going to have to fix. Thanks jp.

Edit: Oh, there is one other thing I'd like to mention though, Scite makes no mention of this error when it happens. It just silently exits and returns from AutoIt. Also, the trayicon doesn't disappear until you mouseover it. Are these problems with Scite? Or the /ErrorStdOut parameter? Or just unfixable things?

Edited by Saunders
Link to comment
Share on other sites

:whistle: Oh I see... glad I didn't post this in bugs then. Argh, kind of a pain though, that's a fair number of dllcalls I'm going to have to fix. Thanks jp.

Edit: Oh, there is one other thing I'd like to mention though, Scite makes no mention of this error when it happens. It just silently exits and returns from AutoIt. Also, the trayicon doesn't disappear until you mouseover it. Are these problems with Scite? Or the /ErrorStdOut parameter? Or just unfixable things?

I notice the SciTe thing. I think it cannot be fix as the autoIt process is abruptly stopped. Perhaps Valik/JdeB can confirm
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...