我想过这个问题,DLL的作用无非就是将内部函数放到内存中去,让别的程序来调用。
静态链接的主要难点在于如何将DLL中的过程绑定到Exe的地址空间中去(估计要用到类似
Aspack的功能——不过比它还要复杂!)。
还有一个问题,就是如何进行调试?——就算你已经成功的将DLL的过程映射到Exe的地址
空间中去了,你还是不可能让Delphi生成静态绑定DLL的Exe文件,因此,用到DLL中的过程的
代码是不可能被Delphi调试的(Turbo Debugger可以吗??)。
还有如何在绑定之后确定DLL过程的入口地址的问题——你不可能事先确定某个过程被映射
到哪个内存地址,因此不能在程序中写死,那么又如何让它自动定位呢??