=sinister= Posted May 13, 2007 Share Posted May 13, 2007 I'm puzzled. On my computer, I tried using skincrafter to skin my GUI. I get this strange error: 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. But it works flawlessly on my other computer. What is wrong with my computer and is there any way to check for this error in the future? Help is appreciated, thanks. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted May 13, 2007 Moderators Share Posted May 13, 2007 The answer to your question is knowing what is required by the third party application more than likely (Kind of a stupid question when you don't post the necessary resources to help you)... Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
=sinister= Posted May 13, 2007 Author Share Posted May 13, 2007 hehe sorry couldn't find my flash drive. Here was my test that didn't work on my computer but worked on my other one: ; example 1 #include <GUIConstants.au3> $dll = DllOpen("Skin.dll") DllCall($dll, "int", "InitLicenKeys", "int", BSTR("0"), "int", BSTR("SKINCRAFTER"), "int", BSTR("SKINCRAFTER.COM"), "int", BSTR("support@skincrafter.com"),"int", BSTR("DEMOSKINCRAFTERLICENCE")) DllCall($dll, "int", "DefineLanguage", "int", 0) DllCall($dll, "int", "InitDecoration", "int", 1) DllCall($dll, "int", "LoadSkinFromFile", "int", BSTR("Blue.skf"));skin file DllCall($dll, "int", "ApplySkin") GUICreate("My GUI") ; will create a dialog box that when displayed is centered GUISetState (@SW_SHOW) ; will display an empty dialog box ; Run the GUI until the dialog is closed While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop Wend ; Put this function anywhere Func BSTR($str) $len = StringLen($str) $buff = DllCall("oleaut32.dll", "int", "SysAllocStringLen", "int", 0, "int", $len) DllCall("kernel32.dll", "int", "MultiByteToWideChar", "int", 0, "int", 0, "str", $str, "int", $len, "ptr", $buff[0], "int", $len) Return $buff[0] EndFunc and I used the older version of Skincrafter. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now