(5)合法 (6)不合法,括号不是合法标识符 (7)合法 ,$是合法的标识符 (8)标识符正确,但表达式错误,因为aa是boolean类型,不能赋值为double类型,boolean类型只能赋值为true或者false。对于这种错误这里有就是控件未定义的意思,为什么会出现这种错误呢?因为这些控件ID都是函数的参数,一般情况我们会看下函数定义。我们在msdn中看下DDX_Text这个函数的定义:
void AFXAPI DDX_Text(
CDataExchangepDX,
intnIDC,
BYTE&value);
最后一个参数"value"还可以是其他数据类型(比如int、long。。。)。
再在Resourceh中看下有没有这些空间的定义,发现是有的,代码如下:
#define IDD_DIALOG1
5000
#define IDC_SIGMA
5000
#define IDC_RATIOLOW
5001
#define IDC_RATIOHIGH
5002
既然有定义还出错,我先想到把定义的具体值带进去试试,于是将 enum { IDD = IDD_DIALOG1 }改为 enum { IDD
= 5000 },其他出错语句进行类似更改。结果编译链接时通过,没提示错误。我以为问题就此解决了呢,实际上更要命的在后面。
这样修改编译链接当然没有问题,因为是按定义来的,至于变量m_Sigma等能不能传不到相应的文本控件中,我就不清楚了,有时间可以做个测试。所以也就通过了。但是在用"类向导"给对话框中"确定"按钮添加事件响应消息时,却提示异常,原来问题还没实质性解决。
再想想,既然定义在"resourceh"里,会不会没有包含这个头文件,因为对话框使我们新建的,"resourceh"时随对话框自动添加的,当然不会自动包含进某个cpp或h文件内,用到"resourceh"里定义的是新建的对话框类,是没有包含"resourceh"的。看似问题解决了。将resourceh添加到stdafxh或对话框类的头文件中就OK了。
#include "resourceh"
果然编译链接通过,给控件添加事件响应不会出现什么异常了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)