windows编程新手常见问题

一.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++。

 

今天就到这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值