如果我再DLL中定义如下全局共享数据区:
#pragma data_seg("MySharedData")
   BOOL gbEnableHook = TRUE;
   HWND ghTargetHwnd = NULL;
   ....
#pragma data_seg()#pragma comment(linker, "/SECTION:MySharedData,rws")如果我在一个应用程序中使用此dll,那么,如果我想直接使用或改变dll中的gbEnableHook的值,那该怎么实现?能直接使用吗?
(排除调用dll中的方法改变其变量的情况)谢谢!

解决方案 »

  1.   

    _declspec(dllexport)   BOOL gbEnableHook = TRUE;不可以吗?
      

  2.   

    假定你的项目名称为PJT
    那么
    #ifdef PJT_EXPORTS
    #define PJT_API __declspec(dllexport)
    #else
    #define PJT_API __declspec(dllimport)
    #endifPJT_API int nPJT;这样可以直接用nPJT
      

  3.   

    demetry(大松) ,不行啊,这样的话就出现LNK2001错误!
    估计链接的时候,链接程序在lib中找不到该变量!再说我在dll中定义的数据也没有用__declspec(dllexport)来修饰啊!
    如果要使用__declspec(dllexport)来修饰的话,我又何必要放在全局数据区中呢?还有其他什么办法吗?