我建立了一个Win32的DLL项目AAA,在AAA.cpp文件里我加了:
#pragma data_seg ("AAA")
#pragma data_seg ()
... ...AAA.def里我也加了:
SECTIONS AAA READ WRITE SHARED
... ...以前我用MFC的DLL是可以共享的,为什么Win32的DLL就不行了!

解决方案 »

  1.   


    #pragma data_seg ("AAA")
    要共享的数据定义在这里
    #pragma data_seg ()
      

  2.   

    这个我知道!我加了!比如:
    int i = 0;我在DLL每次被调用起来后有都显示输出,然后i++,但结果都是0!奇怪!
      

  3.   

    还有!生成Win32的DLL的时候是没有.def文件的,这点我也很奇怪的!不知道是怎么回事!
      

  4.   

    变量也应该声明导出才行。
    _declspec(dllexport)int i;
      

  5.   


    #pragma data_seg ("AAA")
    _declspec(dllexport)int i=0;
    #pragma data_seg () 
    SECTIONS AAA READ WRITE SHAREDdef不要也可以,在其他程序里要把int i import近来即可,参考做HOOK函数的代码  
     
      

  6.   

    #pragma data_seg ("shared")
     int iTotal = 0 ;
     WCHAR szStrings [MAX_STRINGS][MAX_LENGTH + 1] = { '\0' } ;
    #pragma data_seg () #pragma comment(linker,"/SECTION:shared,RWS")
    这样是可以的呀
      

  7.   

    crystal521(水晶泪) 
    可以了!我在连接器里加了以下:
    /DEF:".\AAA.def"并且在.def文件里加了以下:
    SECTIONS AAA READ WRITE SHARED为什么会不行?而以前我用MFC的DLL就可以呢?(MFC的DLL本身就带/DEF参数的)
      

  8.   

    哦!是可以的!我.def文件内容没有写对!嘿嘿!谢谢大家的帮忙!散分了!