chalup Posted September 7, 2007 Share Posted September 7, 2007 (edited) Once more i need the help of more experienced programmers. I've written the dll with the function like this: void Function(char* ret, int p1, int p2) { // messing with "ret" variable } The script that utilizes this function looks like this (ok, it's more complex, but this is the place where something goes wrong): expandcollapse popup#Include <Misc.au3> HotKeySet ( "!{ESC}", "Terminate" ) Global $mydll = -1 Global $card Global $mydll = DllOpen ( @ScriptDir & "\mydll.dll" ) If ( $mydll == -1 ) Then MsgBox (0, "ERROR", "ERROR: can't open dll!" ) Terminate() EndIf Do Do Sleep ( 50 ) Until ( _IsPressed ( 04 ) == 1 ) Do Sleep ( 50 ) Until ( _IsPressed ( 04 ) == 0 ) $asdasd = " " $dllresult = DllCall ( $mydll , "none", "Function", "str:cdecl", $asdasd ,"int:cdecl", 0, "int:cdecl", 0) If ( @error ) Then MsgBox (0, "ERROR " & @error, "Dll function call failed." ) EndIf $asdasd = $dllresult[1] While ( StringRight ($asdasd, 1) == " " OR StringRight ($asdasd, 1) == "?" ) $asdasd = StringTrimRight ( $asdasd, 1 ) WEnd MsgBox ( 0, "CardID", $asdasd) Until ( 0 == -1 ) Func Terminate() If ( $mydll <> -1 ) Then DllClose ( $mydll ) EndIf Exit 0 EndFunc Basically the script should wait until the middle mouse button is clicked, execute the dll function, and then display the result (returned by reference) in message box. But no matter what i pass as the 2nd argument of DllCall i get the @error = 2, which is "unknown return type" error. Everything worked fine with autoit v3.2.4, after update to v3.2.6 i got the "autoit detected stack corruption error", but i was able to solve this problem by just adding ":cdecl" to the parameter types (i figured out the "char*" in dll may cause the problem). Please advise, i have no idea what am i doing wrong. Edit: Please close this thread. Should read more carefully: the ":cdecl" should be added only after the return type, not after the types of parameters. Stupid me. Edited September 7, 2007 by chalup 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