论坛: 编程破解 标题: 我用VC++编程,添加一个比较大小的函数 复制本贴地址    
作者: liusen2001 [liusen2001]    论坛用户   登录
我编一个基于对话框的工程名为Add的程序,有三个编辑框,两个子button,button1为“确定”, botton2为“退出”,其对应变量为m_num1  m_num2  m_num3  我想让编辑3显示m_num1  m_num2的最大值,所以想添加一个比较大小的函数,右键单击CAddDlg类添加成员函数为 int  max  public接下来编代码
            int CAddDlg::max(int a,int b)
                {
              return(a>b?a:b);
                  }
在button1(确定)的映射函数下调用代码,
  void CAddDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData();
m_num3=max(m_num2,m_num1);
UpdateData(false);

}

然后运行程序。结果,出现了一大堆错误,这是怎么回事?

错误如下:
e:\add\adddlg.h(18) : error C2629: unexpected 'int ('
e:\add\adddlg.h(18) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
e:\add\adddlg.h(23) : error C2143: syntax error : missing ')' before '}'
e:\add\adddlg.h(23) : error C2059: syntax error : ')'
e:\add\adddlg.h(23) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(23) : error C2238: unexpected token(s) preceding ';'
e:\add\adddlg.h(31) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(32) : error C2575: 'DoDataExchange' : only member functions and bases can be virtual
e:\add\adddlg.h(36) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(41) : error C2575: 'OnInitDialog' : only member functions and bases can be virtual
e:\add\adddlg.h(46) : error C2143: syntax error : missing ';' before 'private'
e:\add\adddlg.h(46) : error C2133: '_messageEntries' : unknown size
e:\add\adddlg.h(46) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(46) : error C2270: 'GetMessageMap' : modifiers not allowed on nonmember functions
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
AddDlg.cpp
e:\add\adddlg.h(18) : error C2629: unexpected 'int ('
e:\add\adddlg.h(18) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
e:\add\adddlg.h(23) : error C2143: syntax error : missing ')' before '}'
e:\add\adddlg.h(23) : error C2059: syntax error : ')'
e:\add\adddlg.h(23) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(23) : error C2238: unexpected token(s) preceding ';'
e:\add\adddlg.h(31) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(32) : error C2575: 'DoDataExchange' : only member functions and bases can be virtual
e:\add\adddlg.h(36) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(41) : error C2575: 'OnInitDialog' : only member functions and bases can be virtual
e:\add\adddlg.h(46) : error C2143: syntax error : missing ';' before 'private'
e:\add\adddlg.h(46) : error C2133: '_messageEntries' : unknown size
e:\add\adddlg.h(46) : error C2143: syntax error : missing ';' before 'protected'
e:\add\adddlg.h(46) : error C2270: 'GetMessageMap' : modifiers not allowed on nonmember functions
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
e:\add\adddlg.h(47) : error C2143: syntax error : missing ';' before '}'
E:\Add\AddDlg.cpp(18) : error C2511: 'CAddDlg::CAddDlg' : overloaded member function 'void (class CWnd *)' not found in 'CAddDlg'
        e:\add\adddlg.h(14) : see declaration of 'CAddDlg'
E:\Add\AddDlg.cpp(113) : fatal error C1004: unexpected end of file found
Generating Code...
Error executing cl.exe.
大虾们可以告诉我错在哪里吗?怎么操作吗?


地主 发表时间: 04-01-03 10:28

回复: UNNAMED [waiting]   论坛用户   登录
错误提示上说的已经很明白了!
      我不是大虾

B1层 发表时间: 04-01-03 10:54

回复: moley [moley]   论坛用户   登录
路过的

B2层 发表时间: 04-01-03 21:31

回复: dreamone [dreamone]   论坛用户   登录
你的文件头呢?

B3层 发表时间: 04-01-03 23:05

回复: ziaichen [ziaichen]   论坛用户   登录
我晕
你在机器上运行的程序有头文件吗?
还有,你要把全部的源程序给贴出来,包括头文件和主程序。
这样,别人才好帮你呀?

B4层 发表时间: 04-01-04 11:22

回复: 286 [unique]   版主   登录
void CAddDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_num3=max(m_num2,m_num1);
UpdateData(FALSE);
}

另外,max好象是VC的库函数,所以你不如把它改成其它函数名,比如max2,再试试。

B5层 发表时间: 04-01-05 09:26

回复: rpgboy [gxwbb]   论坛用户   登录
你要是解决不了给我发邮件。

B6层 发表时间: 04-01-07 11:43

回复: leonshoh [leonshoh]   论坛用户   登录
把类声明贴上来~

B7层 发表时间: 04-01-08 16:33

回复: flavor [flavor]   论坛用户   登录
你牛,那么多的(,),{,}没打好。

B8层 发表时间: 04-01-09 02:03

回复: wuhuan [wuhuan]   论坛用户   登录

max是保留字 我以前用保留字做标示符的时候也出现过100多个错误


B9层 发表时间: 04-01-13 22:51

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号