我想利用delphi将C++Builder封装的Dll再封装一次成dll,但是不想再见到原来的dll,可以实现吗?如果可以,该如何实现?

解决方案 »

  1.   

    动态的一般是不行,但是可以表面上让原来的dll见不到
      

  2.   

    把原来的dll弄成resource链接到新dll里,简单的加载dll的时候把原来的dll解成个临时文件,LoadLibary,退出的时候unload删掉
    复杂点儿的自己写个或者找个pe loader直接在内存中操作不需要临时文件
      

  3.   

    把原来的pe文件拆开,把自己的pe文件也拆开,重新算call/jmp的偏移量,然后再链接到一起,搞不好还得自己写.reloc节的重定位信息
      

  4.   

    一个文件夹下放一个dll和放多个dll的效果是一样的
      

  5.   

    主要是应别人的要求这么做的,他提供的DLL是别人开发的。现在要我再帮他封装一次,红旗兄,有什么好的办法没有,可以另外开贴加分。
      

  6.   

    将可执行文件作为资源包括进去。 另外一种方法就是在Dll文件结尾写数据,也就是所谓的捆绑文件和释放捆绑文件,这是安装包的制作原理,再者就是内存运行dll...