最近一段时间遇到的问题

1. delete的时候出错

用new申请的空间,然后在程序的某个时候delete,但一运行到delete处就会崩溃,开始就坐那儿查找问题,找了半天也没找到,但好像又没有什么问题,但不可能无缘无故就会出错吧,于是静下心来随意的浏览程序代码,突然发现,这块内存是共享内存,此时还Map着呢,晕了……

 

2. HBITMAP只能被选入一个DC中

往DC上画图片的时候一直出问题,有时候就是全黑的,图片根本画不上去,后来查了一下SelectObject才发现,原来bitmap在某个时候只能被选入一个DC中

 

3. 新建线程时要注意的问题

在写程序的时候有个需求是就显示图片,因为好多格式的图片在显示的时候都需要解码,所以我用了新建线程的方法来显示的图片,但却发现用鼠标点来显示图片,和用键盘来选择图片然后显示图片的效果却不一样,用键盘来显示,完全正常,用鼠标选择来显示图片,却出现了异常,即图片根本显示不出来,这下就奈闷了……

后来一调试才突然明白,原来因为我的代码本身就有问题:

伪代码如下:

DWORD NewThread(int b)

{

   Use(b);

}

 

void fun(LPTSTR a)

{

   LPTSTR b = ***;

   CreateThread(NewThread, b);

}

 

原来是因为在调用完CreateThread之后,调用fun时所创建的栈帧就会被释放,此时b位置的值成了不可确定的值了,所以将b改成static类型的,就可能解决这个问题,只说是可能,即,如何连续调用2次这个fun函数,即使b是static类型的,也有可能会出现问题,因为第二次调用时,就可能会把b的值更改,此时第一次创建的新线程如果还没有使用这个值,在使用的时候就会使用一个错误的值。

 

 

现在也想不起来还有什么问题了。因为同学来了,陪同学玩了2天,下午的时候送走了同学之后,然后回家之后就和舍友吃饭,在超市里面买了很多东西,然后拿烧水的来烧火锅,呵呵,吃的挺撑的。

吃完之后准备看电影,正下载着《骑士歪转》,突然想起来这周好像还没写博客,但又不知道写什么,因为这周什么也没干,本来开始想写如何使用gif图片呢,但最后因为没有解决如何用IImageDecoder显示gif的问题,所以也就不好意思写了。后来又想写gcc的使用,因为最近可能暂时要去做linux后台了……,前几天拿着gcc的手册看了看,但这些东西在网上一搜一大把,写了也没啥意思……

 

电影快下完了,今天看完电影刚好可以睡觉了……

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值