`
wdvkm29c
  • 浏览: 12937 次
社区版块
存档分类
最新评论

windows编程新手常见问题

 
阅读更多

windows编程新手常见问题
2011年05月06日
  一.MFC两个对话框之间如何传递数据。
  首先,这里有一个理解误区。一开始就把自己绑死在对话框上了。其实,在MFC里,对话框也是一个类。既然如何,你只需要考虑两个类之间如何传递数据就OK了。那就可以简化了(假设为类A和类B):
  1.A与B是父子关系。这时候。应该只需要从父亲向儿子传递参数。如果有回传,可以使用回调或者返回值。
  2.A与B是平级关系。这时候。需要让他们共同的父亲来负责传递。实际应用中。可以使用接口来实现。即A与B互相拥有对方的接口,注意是接口,不是实现。
  二。不喜欢初始化变量。
  很多新手的代码。是这样char buffer[255];
  然后就把这个buffer传递给一些api操作。当api成功时,这里一般不会有问题。里面的字符串会是空结束符的。但当api失败时。这个字符串可能没有空结束。然后再用api来操作buffer时。崩溃。
  三。不喜欢判断api或者函数的返回值。
  一个函数有返回值,除非设计者秀逗,不然返回值都是有意义的。如果只是按文档抄一个函数调用下来。小学生都会。程序员,要学会判断返回值。
  四。不清楚C库的字符串操作函数特性。
  为什么只说字符串?因为常用呗。,难道不是?
  windows有提供一些字符串操作函数。c库也有提供。但所有c库的字符串函数都不作安全检查的。即:只能接受合法,有效的参数。非法参数将导致崩溃。但大部分windows api可以接收空指针甚至无效指针。不信?用strcpy和lstrcpy试一下。传入空指针。前者是c库的,一定崩溃,后者是windows api.啥事没有。
  五。写c++代码还是喜欢用c的格式化sprintf。
  这也算问题吗?我认为算。why?
  首先。更早的检查出错误,如果你用sprintf或者wsprintf。写错了。少写了参数。编译时不会有问题。如果这段代码没执行。那运行时也没事。但如果用c++的流格式。编译时就会发现错误。相信我。更早的发现错误才能更好的解决问题。
  当然,有大虾不满意了。我一直用sprintf,挺好的啊。是挺好。你写错过没?有几个人记得如何格式化一个64位整型?用c++的流,你压根就不需要记。
  六。一直想精通很多语言。
  有这个必要吗?语言这东西,一通百通。编程语言就那点事,类型(有强有弱),变量,分支,循环,函数/过程/跳转(汇编),想清楚这些,剩下的就是每种语言的语法不一样而已。专心学好一门吧。学好了。你再看其他语言。其实没那么难。再说。门门通的结果是门门差。专精一门好。------我只会c++。
  今天就到这里。
分享到:
评论

相关推荐

    新手必看编程法则C++

    3.2 简单的Windows应用程序命名规则 3.3 简单的Unix应用程序命名规则 第4章表达式和基本语句 4.1 运算符的优先级 4.2 复合表达式 4.3 if 语句 4.4 循环语句的效率 4.5 for 语句的循环控制变量 4.6 switch语句 4.7 ...

    高质量C++编程指南.zip

    3.2 简单的WINDOWS应用程序命名规则 23 3.3 简单的UNIX应用程序命名规则 25 第4章 表达式和基本语句 26 4.1 运算符的优先级 26 4.2 复合表达式 27 4.3 IF 语句 27 4.4 循环语句的效率 29 4.5 FOR 语句的循环控制变量...

    visualc++6.0新手入门

    用InstallShield制作专业Windows安装软件  Visual C++ 编程风格守则  我对VC的看法  如何学习vc++(vc的用处)  初学者要如何学习 C++【我见我闻我感我思】  C++学习经典  VC入门的一条路  一些不常见的VC数据...

    Visual C++ 2005入门经典--源代码及课后练习答案

    1.4.4 Windows编程概念 6 1.5 集成开发环境简介 7 1.6 使用IDE 9 1.6.1 工具栏选项 9 1.6.2 可停靠的工具栏 10 1.6.3 文档 11 1.6.4 项目和解决方案 11 1.6.5 设置Visual C++ 2005的选项 23 1.6.6...

    VBA实例代码

    由于VBA在语言特性方面并不完备,List 等常见数据结构以及相关算法依赖于使用者进行实现,并且惟一内置的 Dictionary 也需要另外进行引入,使得VBA 比之Python对于新手不甚友好。但是在Windows平台下,Excel的普及...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事程序设计教学工作已经超过了25年。  苏正泉,1995年毕业于解放...

    Android高级编程--源代码

    该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社...

    linux快速入门教程(非扫描版)

    化的方式讲解这些材料,虽然从一个作者的角度考虑很有道理,但对于Linux 新手来说,他们 可能会感到非常困惑。 另一个目的,是想让读者熟悉Unix 的思维方式,这种思维方式与Windows 不同。在学习 过程中,我们会帮助...

    CN-DOS批处理精华贴(2007-A)(IE6)

    中国DOS联盟批处理室精华帖合集,2007年上半年版。... 本电子书囊括了中国DOS联盟论坛批处理室从2004年至今的几乎全部精华/常见问题帖,是新手学习的必备,老手参考的宝典,内容精彩纷呈,不容错过。

    Accelerated C++ PDF 中英文版

    书中用特殊版式突出标注的文字,是为了向读者提醒语言的重要特征,警示常见的错误,标明良好的编程实践,列出通用的使用技巧。希望这些标注可以帮助读者更快地消化重要概念,避免犯常见错误。为了更易于理解各种特征...

    Linux中文手册

    5.Linux系统常见应用软件 6.Turbo Linux 简体中文版安装手记 7.Apache+php3+PostgreSQL 8.XWindow显卡配置通用解决方法 9.Linux中的字型(FONTS)设定 10.Linux部分命令简介 11.Lilo.conf (LILO 配置文件) 手册 ...

    NHibernate参考文档 - 符合.Net习惯的关系数据库持久化

    常见的问题和会在可以NHibernate社区博客找到。 第三方演示,例子教程的链接可以在 NHibernate资源找到。 NHibernate网站的“社区(Community Area)”是讨论关于设计模式以及很多整合方案(ASP.NET, Windows Forms,...

    C#微软培训资料

    14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...

    Matlab程序代码大作业-VT-F15-ECE6504-HW0:ECE6504作业0

    常见问题已在此处解决。 去做 安装Anaconda python。 Python 如果您熟悉python,则可以跳过本节! 如果您是python的新手,并且在使用C / C ++,MATLAB等语言方面有足够的编程经验,那么您应该能够轻松掌握该课程所...

    SQL Server 2008商业智能完美解决方案 1/3

    无论是商业智能(BI)编程新手还是经验丰富的老手,都可从《SQL Server 2008商业智能完美解决方案》中获益。 目录 -------------------------------------------------------------------------------- 第一部分...

    asp.net知识库

    常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用...

    CuteFTP9简易汉化版

    一种上传软件很简单对于新手FTP用户,然而强大的足以让有经验的用户。 友好的用户界面使您可以轻松地更新和维护复杂的网站。 你可以用一种上传软件维护关键任务文件传输的安全特性。 你甚至可以计划和脚本使用转让...

    java源码包---java 源码 大量 实例

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...

    java源码包2

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

Global site tag (gtag.js) - Google Analytics