#pragma data_seg("mysec")
HWND hwnd2=NULL;
#pragma data_seg()
#pragma comment(linker,"/section:mysec,RWS")
很多人都这么写有必要吗?我刚才写了一个不用这样直接
HWND hwnd2=NULL;
就可以了一样可以挂钩编译环境vs2010 w7

解决方案 »

  1.   

    没有必要啊 放在data_seg里面的内容是各进程共享这块数据  ,如果你不需要他们共享,你就不要放啊 dll中有些数据:共享的,不共享的(比如函数中的局部变量)
      

  2.   

    多个进程共享数据,就要使用共享内存了。比如
    int a;
    在A进程调用的时候  a = 1;赋值了。在B进程调用的时候。如果int a 是共享内存里面定义,那么a = 1 了。如果不是,那它还是初始值,区别就在这里了。
      

  3.   

    全局钩子会将DLL注入至每个进程。如果想在其他进程里用到被你程序赋值的hwnd2,就要将此数据共享,否则其他进程里的hwnd2值还是初始化时的NULL。