Code: Select all
f:=ahkFast("#Persistent`na:=[1,2,3]`ntest(s){`nreturn s`n}")
Sleep, 200
f.set("test","2")
MsgBox % f.a.1 " " f.test " " f.test([1,2,"c"]).3
ahkFast(this:="",code:="",wait:=""){
static dll
if isobject(this)
{
s:="__default_Created(){`nstatic _:=__default_Created(),Thread`n"
. "Thread:=CriticalObject(" (&this) "),Thread.base:={__Call:CriticalObject(Func(`"__default_call`")),__set:CriticalObject(Func(`"__default_set`")),__get:CriticalObject(Func(`"__default_get`"))}`n"
. "}`n__default_get(f,n,p:=`"`"){`nglobal`nTry`nreturn (p?`%n`%[p]:`%n`%)`n}`n"
. "__default_set(f,n,p){`nglobal`nTry`nreturn (`%n`%:=p)`n}`n"
. "__default_call(f,n,p*){`n`nif n:=func(n)`nreturn p.Length()?n.call(p*):n.call()`n}`n" code
n:=this.new,n[s]
}
else
{
if !dll
UnZipRawMemory(LockResource(LoadResource(0,ad:=FindResource(0,"F903E44B8A904483A1732BA84EA6191F",10))),SizeofResource(0,ad),dll)
f:=CriticalObject(),f[""]:=r:=MemoryLoadLibrary(&dll),f.fast:=func("ahkFast")
for i,n in {"fn":["ahkFunction","s==sssssssssss"],"fp":["ahkPostFunction","i==sssssssssss"],"new":["ahktextdll","ut==sss"]
,"add":["addScript","ut==si"],"exec":["ahkExec","ut==sui"],"get":["ahkgetvar","s==sui"],"set":["ahkassign","ui==ss"],"sub":["ahkLabel","ui==sui"]
,"pause":["ahkPause","i==s"],"end":["ahkTerminate","i==i"],"Ready":["ahkReady",""],"Reload":["ahkReload","i==i"]}
f[i]:=DynaCall(MemoryGetProcAddress(r,n.1),n.2)
if this!=""
ahkFast(f,this,code)
return f
}
}