Hi wizards!
Got a lot of functions from you working fine with AHK Standard.
Bit now I'm using AHK_L and the functions do not work anymore.
The example:
Code:
ScriptAHKType := "AHK_L Unicode32" ; Info for automatic compiler to use AHKL Unicode 32 bit as default
HEX := "3000000004FC00000000028000FC008008020080000000000800444445373331615F5F5F060000076B061500020000002C38B86B3004020000000080FFFB0080FECADEFAFEAFFECA0000000074FB008000100000310412007800008003020080FECADEFAFEAFFECA00000000000000000010000019BA45610000000000000000"
VarSetCapacity(BIN,0x2000,0x41)
_Hex2Bin(&BIN,HEX)
R := _Bin2Hex(&BIN,StrLen(HEX)//2)
DoInform(HEX "`n`n" R)
ExitApp
DoInform(Msg = "")
{
MsgBox,262208,Information, %Msg%
}
_Hex2Bin(ptr, hex) { ; Hex2Bin(fun,"8B4C24") = MCode(fun,"8B4C24")
Static fun
If (fun = "") {
h:="568b74240c8a164684d2743b578b7c240c538ac2c0e806b109f6e98ac802cac0e104880f8"
. "a164684d2741a8ac2c0e806b309f6eb80e20f02c20ac188078a16474684d275cd5b5f5ec3"
l := StrLen(h)//2
VarSetCapacity(fun,l)
Loop, %l%
NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
}
dllcall(&fun, "Uint",ptr, "Str",hex, "cdecl")
}
_Bin2Hex(addr,len) {
Static fun
If (fun = "") {
h:="8B54240C85D2568B7424087E3A53578B7C24148A07478AC8C0E90480F9090F97C3F6DB80E30702"
. "D980C330240F881E463C090F97C1F6D980E10702C880C130880E464A75CE5F5BC606005EC3"
l := StrLen(h)//2
VarSetCapacity(fun,l)
Loop, %l%
NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
}
VarSetCapacity(hex,2*len+1)
dllcall(&fun, "uint",&hex, "uint",addr, "uint",len, "cdecl")
VarSetCapacity(hex,-1) ; update StrLen
Return hex
}
_BinByteSum(ptr,len)
{
Static fun
If (fun = "") {
h :="33c03944240876108b4c24040fbe1103c241ff4c240875f4c3"
l := StrLen(h)//2
VarSetCapacity(fun,l)
Loop, %l%
NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
}
PtrType := A_PtrSize ? "UPtr" : "UInt"
R := dllcall(&fun,PtrType,ptr,Uint,len)
return R
}
_BinCompare(Ptr1,Ptr2,Len)
{
Static fun
If (fun = "") {
h :="535556578B7C242033F633D285FF7C2C8B44241C7F0485C074228B6C24148B4C24182BE98A1C293A19751B4183C60183D2003BD77CEE7F043BF072E85F5E83C8FF5D0BD05BC35F8BC65E5D5BC3"
l := StrLen(h)//2
VarSetCapacity(fun,l)
Loop, %l%
NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
}
PtrType := A_PtrSize ? "UPtr" : "UInt"
R := DllCall(&fun,PtrType,Ptr1,PtrType,Ptr2,"Int64",Len,"cdecl int64")
return R
}
Result on AHK:
Quote:
---------------------------
Information
---------------------------
3000000004FC00000000028000FC008008020080000000000800444445373331615F5F5F060000076B061500020000002C38B86B3004020000000080FFFB0080FECADEFAFEAFFECA0000000074FB008000100000310412007800008003020080FECADEFAFEAFFECA00000000000000000010000019BA45610000000000000000
3000000004FC00000000028000FC008008020080000000000800444445373331615F5F5F060000076B061500020000002C38B86B3004020000000080FFFB0080FECADEFAFEAFFECA0000000074FB008000100000310412007800008003020080FECADEFAFEAFFECA00000000000000000010000019BA45610000000000000000
---------------------------
OK
---------------------------
Result on AHK_L:
Quote:
---------------------------
Information
---------------------------
3000000004FC00000000028000FC008008020080000000000800444445373331615F5F5F060000076B061500020000002C38B86B3004020000000080FFFB0080FECADEFAFEAFFECA0000000074FB008000100000310412007800008003020080FECADEFAFEAFFECA00000000000000000010000019BA45610000000000000000
〳ㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴㄴ
---------------------------
OK
---------------------------
Could anybody help me?