发表回复 
Autohotkey_H 推广
2013-10-27, 22 : 23
RE: Autohotkey_H 推广
(2013-10-27 22 : 17)billy036 提到:  呵呵,那你研究出来后跟大家分享一下,我去年开始也转用了H版,主要是调用API比较方便,最近也对多线程和内存加载DLL比较感兴趣,多线程解决了以前主线程做某些操作​时,无响应的现象,内存加载DLL也解决了,必须通过FileInstall解压调用的第三方DLL到临时目录的问题。

嗯,文档外的东西我会记录下来(不过论坛编辑功能不给力啊)..
你说的好多我都没碰过(由于多线程需要第一次使用DLL)..直接AHK_V2A_H_MD,慢慢学了...

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-11-02, 13 : 27 (这个帖子最后修改于: 2013-11-02 13 : 29 by 兔子.)
RE: Autohotkey_H 推广
(2013-10-26 18 : 15)汐潮_ 提到:  支持定制版。
struct我也经常用,可惜到现在不知道结构是什么。


编译问题,我也没崩溃过。你编译过AutoHotkey.exe试试了吗,就是用它代替AutoHotkeySC.bin。

试过以下几种编译,均出错。

Win32w\AutoHotkey.exe
Win32w\AutoHotkeySC.bin

Multi-threaded Dll MD\Win32w\AutoHotkey.exe
Multi-threaded Dll MD\Win32w\AutoHotkeySC.bin

以下是.AHK状态下运行正常,编译后出错的代码!

代码: (全选)
obj:=CriticalObject() ;创建新的对象,使得在多线程中使用对象时安全。一个变量,如果同时被多个线程操作,是会出错的。所以才有 CriticalObject() 之类的安全操作方式
对象:=CriticalObject(obj,1) ;第二个参数为1,获取首参数的别名对象
指针:=CriticalObject(obj,2) ;第二个参数为2,获取用来避免并发访问的 CrticalSection 的指针

Loop, 4 ; 创建 4 个线程.
  {
    code=
      (
new%A_Index%:=CriticalObject(%对象%,%指针%)  ;要想让obj变成安全的共用变量,让每个线程都能安全的操作它,那么就要写这么一句。注意它们指向的内容是一致的,但每处名字都不同,且各处只能通过各处自己​??的名字访问该对象
Loop,500000 ;每个线程都往new对象内添加50W组元素,其实就是往obj里面添加
new%A_Index%.insert(A_Index) ;名字变了,但操作的还是obj对象。其实一般来说,可以将它们各处名字都取得一样,便于理解
      )
    AhkThRead%A_Index%:=AhkDllThRead("AutoHotkeyMini.dll")  ;创建线程
    AhkThRead%A_Index%.ahktextdll(code) ;运行代码
  }

Loop
    ToolTip, % obj.maxindex() ;显示obj对象现在的元素数量
Return

Esc::
  MsgBox,看看内存占用!
  DllCall("DeleteCriticalSection","Uint",指针)  ;帮助中说“删除 CriticalObject 时, 不会同时删除它的 CrticalSection ”,所以这里要先删 CriticalSection。实际上这句代码放主线程(即这里)执行没效果。放线程执行,则会导致线程终止,但内存依旧不会被释放
  obj:="" ;清空obj对象
  MsgBox,obj倒是没值了,可内存还是被占用着……
  ExitApp
Return

能否提供一个编译好的程序我试试???

实在弄不懂问题到底在哪……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2013-11-02, 16 : 56
RE: Autohotkey_H 推广
(2013-11-02 13 : 27)849112292 提到:  试过以下几种编译,均出错。
我没编译过,这的编译指什么?(指用Compile中的Ahk2Exe.exe将ahk脚本与解释器(版本相关的AutoHotkeySC.bin)一起封装成独立可执行文件?)
如果是上述理解,是不是编译时选择与脚本版本一致的AutoHotkeySC.bin版本(L/H_V2/V1_(MD))。

One for all, but man for himself

帮推广:AHK知乎专栏
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合