Changes between Initial Version and Version 2 of Ticket #2015
- Timestamp:
- 09/17/11 20:45:23 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #2015
- Property Keywords dllcallbackregister added; dllcalladdress removed
- Property Summary changed from DllCallAddress Corrupts float Type under x64 to DllCallbackRegister() mangles floating point numbers under x64
-
Ticket #2015 – Description
initial v2 1 float type parameters are corrupted when passed to callbacks (and I assume any function) when run under AutoIt x64. x86 is unaffected. 1 Parameters of type "float" are mangled when passed to DllCallbackRegister() callback functions under x64. The following script demonstrates the problem: 2 {{{ 3 Local $hCallback = DllCallbackRegister("Callback", "none", "double;float;") 4 Local $pCallback = DllCallbackGetPtr($hCallback) 5 DLLCallAddress("none", $pCallback, "double", 1234, "float", 1234) 2 6 3 See this post: 4 http://www.autoitscript.com/forum/topic/95366-latest-beta/page__view__findpost__p__926669 7 Func Callback($fDouble, $fFloat) 8 ConsoleWrite("Double: " & $fDouble & @CRLF) 9 ConsoleWrite("Float: " & $fFloat & @CRLF) 10 EndFunc 11 }}} 12 The double output is correct. Float output is mangled and changes with each invocation.