#pragma data_seg("Shared")
HHOOK g_hhook = NULL;
DWORD g_dwThreadIdDIPS = 0;
#pragma data_seg()

解决方案 »

  1.   

    #pragma是针对编译器的设置选项,内容很多的。
    以上的语句,设置一个共享数据段。
    比如连接.lib的语句:
    #pragma comment(lib, "test.lib")
    再比如设置结构成员对齐的语句:
    #pragma pack(push, 1)
    #pragma pack(pop)
    等。
    具体,需要察看msdn。有很多的。
      

  2.   

    我知道一个:
    #pragma once只编译一次
      

  3.   

    #pragma data_seg("Shared")//编译器创建一个名为Shared的节
    HHOOK g_hhook = NULL;//把#pragma之后的初始化数据变量都放入该节中
    DWORD g_dwThreadIdDIPS = 0;//把#pragma之后的初始化数据变量都放入该节中
    #pragma data_seg()//停止把初始化数据变量都放入该节中
    以后出现的变量则把它们放在缺省的数据节中
      

  4.   

    dll 会被映射的多个进程空间内,
    dll 内定义的变量在各个进程空间中是独立的。
    如果你定义了 share 段,那么这个段里的变量便是在各个进程间共享的了。
    你可以使用这种方法在进程间传递数据。