现在遇到了这样的一个难题:
   在dll中间,有个全局变量.g_fSetting,出始化为0;
   在该dll被调用后, 给g_fSetting赋值. 但是随着函数的执行,该变量会莫名的消失(Debug的时候看Memory全部变成问号),然后运行到某个函数的时候,就立刻变成了0,原先的赋值消失掉了;
   这样的问题该如何解决;现在我要保留g_fSetting的赋值

解决方案 »

  1.   

    试试把这个变量放在共享数据区,也就是说在这个变量的声明时,把你的变量定义放在这些编译设置中间:
    #pragam data_seg("Share")//在这个区域里声明全局变量
    float g_fSetting = 0;#pragma data_seg()
    #pragma comment(linker,"/section:Shared,rws")具体的使用方法,可以查一下MSDN。
      

  2.   

    放到共享数据段中保存 
    data_seg
      

  3.   

    放入共享数据段,记得要初始化
    #pragma data_seg(".name")
    float g_fSetting = 0.0;
    #pragma data_seg()#pragma comment(linker,"/SECTION:.name,rws")
      

  4.   

    来迟了,同意SmileWolf(^_^^_^笑口^_^^_^常开^_^^_^) 说的
      

  5.   

    我重新研究了一下,发现全局g_fSetting所在的dll被load的时候,g_fSetting 产生并且被初始化.随后被赋值.然后该dll 被 free .free之后g_fSetting也随之消失掉. 现在我要保持g_fSetting的数值,通过g_fSetting来传递变量.问题就是这样,我该如何处理呢?