在formcreate里下载dll 并加载相应的loadlibrary(dll),然后在程序退出时先 freelibrary(dll)然后调用 application.Terminate();
问题是 程序退出是总是出现raised exception class EAccessViolation with message 'Access
violation ad address...'...请问各位这是什么毛病呢?
问题是 程序退出是总是出现raised exception class EAccessViolation with message 'Access
violation ad address...'...请问各位这是什么毛病呢?
首先我在一个过程中动态加载dll,然后将handle记录下来
然后在另一个过程中调用dll中窗体form中的onCloseQuery过程后
调用freelibrary单步执行到此没有问题
直到运行到过程的
Application.Run;
end.
执行完run之后报
raised exception class EAccessViolation with message "Access
violation ad address... "... 如果我不调用freelibrary销毁dll不出错,不过这样就无法在程序里删除dll
1) if openDialog1.Execute then ....
2) if colordialog1.execute then....1)不会发生异常,替换为2)发生异常。其余所有代码相同
引发和楼主相同的异常,报的是dll的错,其实dll可能跟这个一点关系都没有
我在terminate之前调用了 dll的 closequery过程,和这个有影响么?
网上有这些说法:
1. 是因为传入了Application.Handler(看不懂的原因)
2. 没有释放资源(这个就不好说了)
3. 没有关闭数据库连接Connection 或 Query 等(后来手动把这些都关了还是报错)期待高手来解决