本帖最后由 s1w2l31112 于 2009-12-17 13:53:17 编辑

解决方案 »

  1.   

    PE中保存了数据段的起始偏移和大小。
    FILE* fp = fopen( "xxx.dll" , "rb" );
    fseek( fp , 偏移, SEEK_SET );
    char xx[足够长]
    fread(  xx , 数据段大小, 1 , fp );
      

  2.   

    谢谢前辈的解答:
    我在程序中设置一个数组,因为牵扯到多线程共享数据段的问题,可能某个线程会修改数据段,造成以后线程调用错误,(前面曾经看到过“写入时拷贝”机制,但是发现只是多进程调用dll时的一种机制);因此,我想实现多线程调用dll中的共享数据段时的一种类似“写入时拷贝”机制,
    于是想了个方法:每个线程调用共享数据段之前,将其拷贝到数组中进行保存,调用完后,再将数组中的数据拷贝回dll中,这个想法可行性怎样?按您的程序,我再将数组中的数据拷贝回dll中,用哪个函数实现?初次接触这中问题,还望前辈多多指教……