如何在对话框之间实现传递数组

wswangkai 2008-04-27 07:46:29
我想将第一个对话框中一个动态数组d[n]传给第二个中,我这样做的:
在stdafx.h中加extern double d;
在stdafx.cpp加 double d,
然后在第二个对话框中去用:
先extern double d;,
这样做在使用时候有错误:fprintf(file,"d[1]=%f,d[2]=%f\n",d[1],d[2]);
错误提示是:error C2109: subscript requires array or pointer type。
我又修改:
在stdafx.h中加extern double *d;
在stdafx.cpp加 double *d,
编译通过,运行后但是点到第二个对话框出现错误,问是要调试还是取消。请问大家怎么样在对话框之间传递这个动态的数组呢。谢谢
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
接分是王道!
mr.zhoux 2008-04-27
  • 打赏
  • 举报
回复
在stdafx.h中加extern double d[2]; 就可以了, 在stdafx.cpp不需要加
zoulie 2008-04-27
  • 打赏
  • 举报
回复
用CArray吧
wswangkai 2008-04-27
  • 打赏
  • 举报
回复
这样做不行啊,我定义的是一个动态数组,
double *d; d = new double[lnum]; 在cpp中加了还有错
量子 2008-04-27
  • 打赏
  • 举报
回复
在stdafx.cpp加 double d[10];
一、对话框组成 本系统由一个主对话框和5个功能对话框组成: 1. 主对话框IDD_GBLQ_DILOG,起菜单、控制作用; 2. 基本信息对话框IDD_JBXX,输入/输出应聘人员的基本信息; 基本信息包括:姓名、性别、出生年月、最后学历和任职时间 3. 成绩对话框IDD_CJ,卡片式输入/输出应聘人员的各项成绩; 成绩包括:年龄分、学历分、任职分、四门笔试分、口试分和总分 4. 列表输出应聘人员信息对话框IDD_DIALOG_CJHZ,可以切换成卡片方式; 5. 录取通知书输出对话框IDD_DIALOG_LUTZS,最多输出5份录取通知书; 6. 关于对话框IDD_ABOUTBOX,可以输出本系统的版本、版权等信息。 二、类信息 本系统由8个类组成,系统自动为每个对话框生产一个类: 1. 应用程序类CGblqApp,系统自动生成,无需编辑; 2. 主对话框类GBblqDlg,系统自动生成框架,根据控件的作用进行编辑; 3. 基本信息对话框类CJbxxDlg,系统自动生成框架,根据控件的作用进行编辑; 4. 成绩对话框类CCJDlg,系统自动生成框架,根据控件的作用进行编辑; 5. 列表输出应聘人员信息对话框类CcjhzDlg,系统自动生成框架,根据控件的作用进行编辑; 6. 录取通知书输出对话框CTzsDlg,系统自动生成框架,根据控件的作用进行编辑; 7. 关于对话框类CaboutDlg,系统自动生成框架,根据控件的作用进行编辑; 8. 应聘人员类Cgb,这个类是根据项目的系统设计自定义的类,有14个数据成员和23个函数成员。函数成员包括:构造函数、析构函数、14个取数据函数(以Get开始的函数)、3个设置数据函数(以Set开始的函数)、1个计算函数(计算总分)。 三、头文件 系统自动为每个类生成一个头文件,系统还为资源文件gblq.rc生成一个头文件gblq.h,这样共有9个头文件,要注意它们之间的包含关系(#include)。通常类中的数据成员在头文件中定义,函数成员在头文件中声明,在对应的源文件(.cpp)中定义。 四、数据文件 系统含有一个存储所有应聘人员信息的文本数据文件“person.data”。 五、全局变量 为了实现对话框之间的数据传递和控制,系统使用了4个全局变量。 1. Cgb gbxx[50],干部信息类的对象数组,用于保存应聘人员的所有数据; 2. int dyxx,用于指示gbxx数组的当前下标; 3. bool isinput,isadd; 状态标志 isinput=true表示输入;false表示输出 isadd=true表示增加记录;false表示 4. int Gb_num,指示全局数组gbxx[50]中有多少有效元素(人员数据)。 六、控制关系 在主对话框的初始化函数BOOL CGblqDlg::OnInitDialog()中(此函数在对话框显示前自动运行),打开文本数据文件“person.data”,将数据读入全局数组gbxx[50]。 在主对话框关闭时,就是在消息函数void CGblqDlg::OnOK()中,将全局数组gbxx[50]中的所有数据写入数据文件“person.data”,覆盖原有数据。 在主对话框对话框IDD_GBLQ_DILOG中,有7个按扭,对应系统的7个功能(不是全部功能)。分别是:基本信息录入、成绩录入(未用)、基本信息输出、成绩输出、通知书输出和排序。 每在基本信息对话框IDD_JBXX中输入一个人信息,就在数组gbxx[50]增加一个元素,同时Gb_num加1,输入结束即计算基本分(年龄分、学历分、任职分和总分)。此时不能输入该人的口试和笔试成绩。 在基本信息对话框IDD_JBXX中浏览基本信息时,点击按钮可以输入该人的口试、笔试成绩,并计算总分。输入的口试和笔试分存储在全局数组gbxx[50]中。输入口试和笔试成绩时不能在数组中增加新行(元素)。 在列表输出应聘人员信息对话框IDD_DIALOG_CJHZ中浏览人员信息时(此时看不到人员基本分),点击姓名列可以激活成绩对话框IDD_CJ,查看全部成绩。 排序没有对应的界面,排完有提示。 通知书对话框可以输出5份录取通知书,每屏一份,点击一次换一份。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧