我要编写一个MFC常规DLL,内容是一个向导页
我想定义了一个全局结构体,在每个向导页OnWizardNext()的时候,把该向导页中的数据写入到全局结构体中
不知道该怎么定义呢?
我在C****APP类定义的后面加了一句:
static MY_STRUCT my_struct;
这样算是全局变量么?好象确实可以全局调用而不用再声明但是这样的话,进入下一个PropertyPage的时候,上一页保存在全局结构体中的数据都不见了,变成了0
这是为什么呢?该怎么解决呢?

解决方案 »

  1.   

    不要在h文件里定义。
    在h文件里extern MY_STRUCT my_struct;
    在某个cpp文件里MY_STRUCT my_struct。
    不过最好不要定义全局变量,可以定义在PropertySheet类里面,在各个PropertyPage中GetParent获得PropertySheet类指针来访问。
      

  2.   

    在PropertySheet里增加变量,然后在PropertyPage中调用?
    ((CPropertySheet*)GetParent())->
    是这样么?但是输入>后列出的提示里没有定义的变量啊怎么办?
      

  3.   

    在你派生的PropertySheet类里添加变量。GetParent后强制转换为你派生的类的指针(不是CPropertySheet)。