本帖最后由 fenhanxue 于 2015-1-7 19:22 编辑
、最近在用到dll相关函数时,遇到如下问题:;程序开始
$dll = DllOpen("111.dll")
;此处略去N行中间代码
;因为程序代码我一直在修改,所以有时候此部分的代码会不是很严谨,导致城市dllopen之后,还没来得急dllclose就出错,并强制退出
DllClose($dll )
Exit
正常的整个程序,运行过程应该是:1. dllopen 2.再运行中间其他代码, 3. 最后dllclose 并退出程序
而我因为中间代码有错,所以程序运行过程是: 1.dllopen 2.中间其他代码运行到一半,报错,程序强制退出
这样出错过几次之后,再打开程序,则 dllopen 会失败,除非要等很长时间或者重启电脑才能正常dllopen 我想问题的根源应该在于之前dll打开后,因为程序出错,没运行dllclose就强制退出了,所以之前的dll还没关闭导致的吧?但是对dll不是很懂,所以不知道怎么处理,所以求教高人有什么解决办法么?
(我的运行环境是win7 64位)
然后同样的代码,在xp 32位下面,不管出错强制退出多少次,不用重启,都能再次打开dllopen
找到一个临时的解决办法,即改一下dll的文件名,如本来叫A.dll 现在把他改成B.dll 。。。。 |