找回密码
 FreeOZ用户注册
查看: 3427|回复: 28
打印 上一主题 下一主题

[论坛技术] VC++问题请教

[复制链接]
跳转到指定楼层
1#
发表于 5-8-2010 23:10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
我是菜鸟,最近刚开始学VC,照着书上的全程写了一个小程序,可是却总也通不过编译,请教大牛们帮我看一下。另外这个itoa是什么意思??

代码:


void CAaaDlg::OnDblClickCalendar1()
{
        // TODO: Add your control notification handler code here
        CString        cSlelectedDate; //        Date selected by user.
        Char* cDay=" "; //Selected day.
        Char* cYear=" "; //Selected Year.

        //Get day from calendar control.
        itoa(m_Calendar1.GetDay(),cDay,10);
        cSelectedDate=cDay;
       
        //Get month from calendar control.
        switch (m_Calendar1.GetMonth())
        {
        case 1:
                cSelectedDate=cSelectedDate+"January";
                break;
        case 2:
                cSelectedDate=cSelecteddate+"February";
                break;
        case 3:
                cSelectedDate=cSelecteddate+"March";
                break;
        case 4:
                cSelectedDate=cSelecteddate+"April";
                break;
        case 5:
                cSelectedDate=cSelecteddate+"May";
                break;
        case 6:
                cSelectedDate=cSelecteddate+"June";
                break;
        case 7:
                cSelectedDate=cSelecteddate+"July";
                break;
        case 8:
                cSelectedDate=cSelecteddate+"August";
                break;
        case 9:
                cSelectedDate=cSelecteddate+"September";
                break;
        case 10:
                cSelectedDate=cSelecteddate+"October";
                break;
        case 11:
                cSelectedDate=cSelecteddate+"November";
                break;
        case 12:
                cSelectedDate=cSelecteddate+"December";
                break;
        }


        //Get the year.
        itoa(m_Calendar1.GetYear(),cYear,10);
        cSelectedDate=cSelectedDate+cYear;

        //Display the date.
        AfxMessageBox("You double-clicked on:"+cSelectedDate,MB_OK|MB_INFORMATION,0);

}


编译出错信息:


--------------------Configuration: aaa - Win32 Debug--------------------
Compiling...
aaaDlg.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(182) : error C2065: 'Char' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(182) : error C2065: 'cDay' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(182) : error C2440: '=' : cannot convert from 'char [2]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(183) : error C2065: 'cYear' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(183) : error C2440: '=' : cannot convert from 'char [2]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(187) : error C2065: 'cSelectedDate' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(193) : error C2440: '=' : cannot convert from 'char [8]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(196) : error C2065: 'cSelecteddate' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(196) : error C2440: '=' : cannot convert from 'char [9]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(199) : error C2440: '=' : cannot convert from 'char [6]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(202) : error C2440: '=' : cannot convert from 'char [6]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(205) : error C2440: '=' : cannot convert from 'char [4]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(208) : error C2440: '=' : cannot convert from 'char [5]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(211) : error C2440: '=' : cannot convert from 'char [5]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(214) : error C2440: '=' : cannot convert from 'char [7]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(217) : error C2440: '=' : cannot convert from 'char [10]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(220) : error C2440: '=' : cannot convert from 'char [8]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(223) : error C2440: '=' : cannot convert from 'char [9]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(226) : error C2440: '=' : cannot convert from 'char [9]' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
C:\Program Files\Microsoft Visual Studio\MyProjects\aaa\aaaDlg.cpp(236) : error C2065: 'MB_INFORMATION' : undeclared identifier
执行 cl.exe 时出错.

aaaDlg.obj - 1 error(s), 0 warning(s)
回复  

使用道具 举报

2#
发表于 5-8-2010 23:21:25 | 只看该作者
Char*应该是char*
itoa() int to string 转化函数,是string.h标准头文件定义的C函数

你这个itoa用法是不对的,编译过运行也会崩溃,正确用法是,cDay,cYear必须先分配内存,比如char cDay[10]这样,例子:http://www.cplusplus.com/reference/clibrary/cstdlib/itoa/

建议8戒你先去学标准C/C++, VC++附带了太多非语言层面的东西,不适合新手用来起步。
回复  

使用道具 举报

3#
 楼主| 发表于 5-8-2010 23:23:19 | 只看该作者
我现在也是没办法,急需搞明白,VC和VBA。
回复  

使用道具 举报

4#
发表于 5-8-2010 23:25:18 | 只看该作者
回复  

使用道具 举报

5#
 楼主| 发表于 5-8-2010 23:27:18 | 只看该作者
WINCC,CITECT,都要用到VBA和VC的代码啊
我最近学校里在学C,不过是非常基本的,我已经自己看完了一本基础入门的C语言书了。想借此来看看VC,第一章就看得头晕了。

[ 本帖最后由 8戒 于 5-8-2010 23:28 编辑 ]
回复  

使用道具 举报

6#
 楼主| 发表于 5-8-2010 23:29:50 | 只看该作者
OPC,我不用急的,不过要做这个,好像要会点VB和C,VC和数据库一类的。这些东西是做画面,做连接最基本的要求啊。
回复  

使用道具 举报

7#
 楼主| 发表于 5-8-2010 23:35:37 | 只看该作者
老丐有没有介绍几本入门的书来看看。
回复  

使用道具 举报

8#
发表于 6-8-2010 13:37:39 | 只看该作者
原帖由 8戒 于 5-8-2010 23:35 发表
老丐有没有介绍几本入门的书来看看。

VC本身没什么特别的,就是个微软的C++编译器 加 Visual Studio 这个IDE。

你现在想学的是MFC, 那就看那本《深入浅出MFC》吧,不过,哎怎么说呢,今天还去推荐别人学MFC,觉得自己挺坏的[size=13.8889px]

评分

参与人数 2威望 +11 收起 理由
key + 1 很坏,有犯罪感吧?
8戒 + 10 谢谢分享!

查看全部评分

回复  

使用道具 举报

9#
发表于 6-8-2010 13:45:32 | 只看该作者
楼上确实挺坏的

回复  

使用道具 举报

10#
发表于 6-8-2010 13:57:20 | 只看该作者
原帖由 准备买悉尼公寓 于 6-8-2010 13:45 发表
楼上确实挺坏的



  如果开发windows 应用,就没必要再学MFC了。 直接.Net C#就可以。
回复  

使用道具 举报

11#
发表于 6-8-2010 14:03:40 | 只看该作者
shortcut哪。直接 .NET了。除了维护古老的应用,应该不会开发MFC了。后台应用除外。
回复  

使用道具 举报

12#
发表于 6-8-2010 14:22:02 | 只看该作者
原帖由 coredump 于 6-8-2010 13:37 发表

VC本身没什么特别的,就是个微软的C++编译器 加 Visual Studio 这个IDE。

你现在想学的是MFC, 那就看那本《深入浅出MFC》吧,不过,哎怎么说呢,今天还去推荐别人学MFC,觉得自己挺坏的

我觉得你没有那么坏嘛   
把那个书看通了对软件架构会增加很多认识,对以后要转去搞Java,C#什么的也挺有帮助,最少不大会像很多人一样对C#,Java的理解一直只停留在简单应用的水平上。
回复  

使用道具 举报

13#
发表于 6-8-2010 14:32:41 | 只看该作者
哇,发现一个同学,兴奋ing

评分

参与人数 1威望 +10 收起 理由
8戒 + 10 你太有才了!

查看全部评分

回复  

使用道具 举报

14#
发表于 6-8-2010 14:41:53 | 只看该作者

回复 #1 8戒 的帖子

8戒兄别折腾C++了,现在C++的市场已经被压缩得很窄了,只有在写系统底层或者要求高效率的情况下用得多一点。

要是想写应用程序,学C#和Java都方便很多,而且找工作的机会也多得多。

评分

参与人数 1威望 +10 收起 理由
8戒 + 10 谢谢分享!

查看全部评分

回复  

使用道具 举报

15#
 楼主| 发表于 6-8-2010 18:34:34 | 只看该作者
我倒没想过以后去做程序员,不过就是觉得做工控的话,C,VC,VBA和数据库这些东西是很重要的,现在的Citect和WINCC都要用到VC代码和VBA的,就算做一个小小的按钮也是一样,应该要懂的,我倒真没心去学这些东西,不过想干这一行的话这些必须会的吧。
回复  

使用道具 举报

16#
发表于 6-8-2010 18:54:20 | 只看该作者
C++ 好多东西没整明白就碰VC绝对是走弯路,就像俺当年一样啊.... 惨痛经历,俺是觉得俺被微软害了,应该直接走linux路线,纯C,纯C++....时间浪费了,效率低。
如果标准的C++没学个七七八八,直接学习VC做东西,不磨练个几年功夫都写不出什么正经的东西来
回复  

使用道具 举报

17#
发表于 6-8-2010 19:51:16 | 只看该作者
楼主要多看MSDN。

其次 ,学VC确实不如学C#,如果你二样都不会,C#容易上手,C/S,B/S 都能做, 如楼上所说, 工作岗位也多。

VC其实是个开发环境, 支持C和C++,以及微软的一套API加自己的程序框架,MFC。 消息映射这些东西,刚开始确实比较复杂。
回复  

使用道具 举报

18#
 楼主| 发表于 7-8-2010 10:49:18 | 只看该作者
真没想干程序员,不过各种SCADA都要C和VBA的
回复  

使用道具 举报

19#
发表于 7-8-2010 11:03:46 | 只看该作者
楼上各位说得很对,我也不建议你从VC学起。
拿一本C语言或C++的书,学一行代码就会一行代码,
掉在VC里,你天天就在VC IDE里神奇这个神奇那个,进展会很慢的。

等你把C/C++啃上两个月,然后再来翻开VC就简单多了。
在连"Hello world"为什么两边有点东西都迷迷胡胡的时候掉VC里有机会被淹死的。
当然,我不是真的认为你连"Hello world"都迷糊,只是做个比方。



原帖由 8戒 于 7-8-2010 10:49 发表
真没想干程序员,不过各种SCADA都要C和VBA的
回复  

使用道具 举报

20#
发表于 7-8-2010 11:06:51 | 只看该作者
原帖由 四香油饼 于 6-8-2010 14:32 发表
哇,发现一个同学,兴奋ing


我上周写了一个初学者练习平台让学生用,比较合适刚开始看书啥也不懂的初学者。
另外有一个由澳洲人原创,三哥跟后面copy的学习平台,叫BlueJ,用了一下还不错。
对初学OOP很有帮助。

不过上面的所有资源都是Java相关的,
饼哥来学Java吧。
回复  

使用道具 举报

21#
发表于 7-8-2010 16:53:56 | 只看该作者
原帖由 key 于 7-8-2010 11:06 发表


我上周写了一个初学者练习平台让学生用,比较合适刚开始看书啥也不懂的初学者。
另外有一个由澳洲人原创,三哥跟后面copy的学习平台,叫BlueJ,用了一下还不错。
对初学OOP很有帮助。

不过上面的所有资源都 ...



感觉jawa好高深啊,俺准备跟老乞丐混,学qt
回复  

使用道具 举报

22#
发表于 7-8-2010 18:13:14 | 只看该作者

回复 #21 四香油饼 的帖子

不是的,C++才高深呢,饼叔接触一下就知道了,至少语法方面比C++简单多了。

好的程序设计语言是比方便和顺手,Java就是因为比C++在很多领域方便顺手很多,所以市场占有率高出很多。
回复  

使用道具 举报

23#
发表于 7-8-2010 18:21:53 | 只看该作者
C++的模板我认为很复杂,另外,指针也是强大,灵活但容易出错的地方
回复  

使用道具 举报

24#
发表于 7-8-2010 19:34:23 | 只看该作者
各位是为了找工作而学还是在工作过程中学啊?这个区别很大哦
回复  

使用道具 举报

25#
发表于 8-8-2010 09:26:32 | 只看该作者
C++ 程序员含泪跑过,澳洲不适合C++程序员存在啊
回复  

使用道具 举报

26#
发表于 10-8-2010 01:09:07 | 只看该作者
原帖由 goooddong 于 8-8-2010 09:26 发表
C++ 程序员含泪跑过,澳洲不适合C++程序员存在啊

为啥?俺是C++的,还在考虑要不要移民中..
回复  

使用道具 举报

27#
发表于 10-8-2010 10:49:12 | 只看该作者
Citect好象在gordon 附近,8戒在这边工作?
回复  

使用道具 举报

28#
发表于 31-8-2010 14:12:05 | 只看该作者
原帖由 key 于 7-8-2010 11:03 发表
楼上各位说得很对,我也不建议你从VC学起。
拿一本C语言或C++的书,学一行代码就会一行代码,
掉在VC里,你天天就在VC IDE里神奇这个神奇那个,进展会很慢的。

等你把C/C++啃上两个月,然后再来翻开VC就简单多了 ...


非常赞同,MFC这个东西建议别碰,要不你很快就对VC失去兴趣的。。
回复  

使用道具 举报

29#
发表于 31-8-2010 14:14:39 | 只看该作者
原帖由 coredump 于 5-8-2010 23:21 发表
Char*应该是char*
itoa() int to string 转化函数,是string.h标准头文件定义的C函数

你这个itoa用法是不对的,编译过运行也会崩溃,正确用法是,cDay,cYear必须先分配内存,比如char cDay[10]这样,例子:http:/ ...


既然用VC了那就用CString,比较弹性,不用预分配内存空间。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 5-8-2025 23:46 , Processed in 0.070948 second(s), 46 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表