MFC,我在全局变量中定义了一个结构体,想在另一对话框初始化。。
MFC中比如我在TestApp中定义有一个全局变量的结构体structStudent{charname[50],longid}student;在某个对话框里有一个局部变量...
MFC中比如我在TestApp中定义有一个全局变量的结构体struct Student{char name[50],long id}student;
在某个对话框里有一个局部变量的结构体,参数类型数量一致,是struct People {char name[50],long id};
我建立了一个对象是:People pl={“小红”,110};
现在我想要用pl来初始化全局变量Student结构体,于是我:
TestApp *app=(TestApp*)AfxGetApp();//生成向应用程序类的指针
//第一种初始化方法(错了):
app->student.name=pl.name;//结果出错,说表达式左边必须是可修改的值
//第二种初始化方法(错了):
app->student.name;
app=pl.name//结果错,说不能把char*赋给TestApp类型的实体;
//第三次尝试,也错!
app->student.name;
app=&pl.name;//原因同上;
//第四次啦,都愤怒啦,我打算强制转化
app->student.name;
app=static_cast<TestApp*>pl.name;//结果又出错,说我转化无效
看我百折不挠,大神们能指条明路给我吗?万分谢谢!
主要是:这里的TestApp是一个通用类,我在另一个窗口访问它必须用指针(听说是这样的),因此这里只能先TestApp *app=(TestApp*)AfxGetApp()创建一个app指针,让它来访问student结构体了。我参考的是: http://dev.yesky.com/225/2153225.shtml。。。其中,我的x是一个结构体,它原文是一个整型变量int型的。。。它可以直接赋值,可是我的结构体里有char[] 展开
在某个对话框里有一个局部变量的结构体,参数类型数量一致,是struct People {char name[50],long id};
我建立了一个对象是:People pl={“小红”,110};
现在我想要用pl来初始化全局变量Student结构体,于是我:
TestApp *app=(TestApp*)AfxGetApp();//生成向应用程序类的指针
//第一种初始化方法(错了):
app->student.name=pl.name;//结果出错,说表达式左边必须是可修改的值
//第二种初始化方法(错了):
app->student.name;
app=pl.name//结果错,说不能把char*赋给TestApp类型的实体;
//第三次尝试,也错!
app->student.name;
app=&pl.name;//原因同上;
//第四次啦,都愤怒啦,我打算强制转化
app->student.name;
app=static_cast<TestApp*>pl.name;//结果又出错,说我转化无效
看我百折不挠,大神们能指条明路给我吗?万分谢谢!
主要是:这里的TestApp是一个通用类,我在另一个窗口访问它必须用指针(听说是这样的),因此这里只能先TestApp *app=(TestApp*)AfxGetApp()创建一个app指针,让它来访问student结构体了。我参考的是: http://dev.yesky.com/225/2153225.shtml。。。其中,我的x是一个结构体,它原文是一个整型变量int型的。。。它可以直接赋值,可是我的结构体里有char[] 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询