none
已编译的DLL程序修改DLL中的二进制内容 RRS feed

  • 问题

  • 我个人初学ATL(生成DLL文件),想在其中实现这样的一种效果:

         在代码中写入一组较大的静态的TEXT内容,在DLL运行时对这部分TXT进行修改,保存,不对DLL进行重新编译。在下次运行DLL时获取TEXT数据时,得到修改后的数据。

         可以这样实现吗?应用win32SDK该如何实现?

    2015年1月8日 3:18

全部回复

  • 应该把数据放到物理文件或者数据库去。DLL运行时是被系统锁定禁止修改的。


    Visual C++ MVP

    2015年1月8日 5:04
    版主
  • 您需要修改的数据需要保存在外边存储中,比如文件或者数据库或其它。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2015年1月8日 9:39
    版主
  • 我觉得完全没有问题,你可以动态的调用DLL,这样的话就可以通过API直接卸载,就不会产生文件被锁定了。不过你得先获取到文本的地址,可以用WinHex这类的软件。其实这样做可以不要附带一个txt,也是挺好的,不过你的DLL因为bug或者新功能的加入而重新生成,那程序也得改,这样就比较麻烦了,不过也可以通过一些代码直接的获取到地址。看你设计啦,不要说得太透明
    2015年1月9日 22:05