关于界面传递参数的问题
我建立了一个对话框IDD_Formview,想通过它来获取用户的参数设置,我使用了两种方法,可是都不行,不知道为什么,请大家帮忙.
1)我在需要参数的CPP文件中添加了"ArgcView.h",可是编译后报错:
: error C2065: 'IDD_FORMVIEW' : undeclared identifier
: error C2057: expected constant expression
2)然后我有想用全局变量的办法,便在需要参数的CPP文件中添加了如下的代码,
extern int m_LenChrom;//传递的参数
extern int m_MaxGen;
extern double m_PopCross ;
extern double m_PopMutate;
extern int m_PopSize;
编译,连接时却出现了如下的问题:
SGA.OBJ : error LNK2001: unresolved external symbol "int m_LenChrom" (?m_LenChrom@@3HA)
SGA.OBJ : error LNK2001: unresolved external symbol "int m_PopSize" (?m_PopSize@@3HA)
SGA.OBJ : error LNK2001: unresolved external symbol "double m_PopCross" (?m_PopCross@@3NA)
SGA.OBJ : error LNK2001: unresolved external symbol "double m_PopMutate" (?m_PopMutate@@3NA)
SGA.OBJ : error LNK2001: unresolved external symbol "int m_MaxGen" (?m_MaxGen@@3HA)
请大家给分析一下,谢谢!小弟不胜感激.
问题点数:15、回复次数:5Top
1 楼pandera(一条自在的鱼)回复于 2006-05-04 16:05:13 得分 10
extern int m_LenChrom;//传递的参数
extern int m_MaxGen;
extern double m_PopCross ;
extern double m_PopMutate;
extern int m_PopSize;
在哪里定义的?Top
2 楼biosheep(慢慢在CSDN中成长)回复于 2006-05-04 16:18:08 得分 0
extern int m_LenChrom;//传递的参数
extern int m_MaxGen;
extern double m_PopCross ;
extern double m_PopMutate;
extern int m_PopSize;
这些参数在ArgcView.h中定义的,如下:
public:
//{{AFX_DATA(CArgcView)
enum { IDD = IDD_FORMVIEW };
CSpinButtonCtrl m_SpinMaxGen;
CSpinButtonCtrl m_SpinSize;
CSpinButtonCtrl m_SpinChrom;
int m_LenChrom;
int m_MaxGen;
double m_PopCross;
double m_PopMutate;
int m_PopSize;
//}}AFX_DATA
而在SGA.CPP中使用使用这些参数,也就是extern * *是写在SGA.CPP中的.
请pandera(一条自在的鱼)指点.谢谢!Top
3 楼lyl_rabbit(阿牛)回复于 2006-05-04 16:51:54 得分 5
包含了头文件就可以使用这些变量了
'IDD_FORMVIEW' 指的是你定义的窗口资源的ID,你查一下看看一样吧Top
4 楼biosheep(慢慢在CSDN中成长)回复于 2006-05-04 18:09:34 得分 0
TO:lyl_rabbit(lyl_rabbit)
我和你想得一样,可是就是当我加了头文件之后才报那个错误的:
: error C2065: 'IDD_FORMVIEW' : undeclared identifier
: error C2057: expected constant expression
不知道是为什么?
谢谢你!
Top
5 楼biosheep(慢慢在CSDN中成长)回复于 2006-05-04 19:40:26 得分 0
谢谢各位的参与,我的问题已经找到答案了,谢谢!
原来我少包含一个"resource.h".谢谢你们的交流!Top




