XE2编译出来的DLL的DLLMain的退出地方用到了halt0

DelphiXE2内存加模块升级版.支持32位和64位模块.

已转至新的博客 http://www.raysoftware.cn/?p=51

很多年以前写过内存加载DLL的一片技术.

http://blog.csdn.net/wr960204/article/details/2134157
上几天有人说找遍互联网也找不到内存加载模块能够成功加载DelphiXE2编译出来的的64位DLL的.

看了一下,其实DelphiXE2编译出来的DLL本身是没问题的,而是这些内存加载忽略了X64情况下异常处理和X86不同.而XE2编译出来的DLL的DLLMain的退出地方用到了halt0,这里面又用的抛异常方式跳出来的.这里就用到了64位PE文件的异常处理部分.而VC等编译的DLL如果没有用到SEH则不会出现问题.但这仅仅试把问题掩盖了.

花了2天写了这个相对可以完整的处理32/64位Windows动态库的加载模块.


上传到了谷歌Code.如果哪位兄弟改了代码记得通知我哦.

http://code.google.com/p/delphi-memory-module/

参考:http://blog.csdn.net/wr960204/article/details/7655684

原文地址:https://www.cnblogs.com/findumars/p/4192411.html