H
huntaway
Unregistered / Unconfirmed
GUEST, unregistred user!
我最近写一个程序,用到了全局钩子。在钩子函数的Dll初始化部分分配了内存,然后在Dll卸载时释放。写完以后大部分正常,但是如果让这个程序自动启动,会在5分钟后死机。仔细检查,发现windows在那个时候会启动tapisrv.exe。tapisrv又执行rnaapp.exe,大概是在rnaapp结束时便死机了。调来调去没有法子,只好用VC重写Dll,居然就没事了。搞不明白为什么。在VC中我用了全局对象,在析构函数中释放内存。Delphi由于要显式地调用Free,只能放在收到DLL_PROCESS_DETACH通知的时候调用。也许问题就出在这里。感觉上写接近核心的东西还是VC比较好。