win98 下和WIN2000下DLL的调用有什摸不同???

解决方案 »

  1.   

    基本上是这样的。Win9x 的所有进程看到的 DLL 都是同一个拷贝并且映射到同一地址(0x80000000~0xBFFFFFFF),所以某个进程修改 DLL 代码页的话对其他进程也会产生效果。但是 Win9x 把 DLL 全局变量所在的页面(.data .rdata 节?)给每个进程都复制一份,以保证进程看到的 DLL 全局变量是独立的。WinNT/2000 采用 copy-on-write 机制保护 DLL 所在页面,不同进程看到的 DLL 页面尽管可能映射到各自地址空间的不同基址,但是实际是相同的。如果进程试图修改某个页面,系统将这个页面复制一份,然后将副本交给试图修改的进程。
      

  2.   

    谢谢 In355Hz !请问我的DLL如果想在多线程中运行,并且 能够在WIN9X 和 WIN2000中运行
    许要注意写什摸问题?谢谢!