丢掉一句wndclass.hInstance=hInstance;编译通过,能运行但看不见,后果严重!

作者制作的LineSample Windows应用程序,因注册属性缺失、变量未初始化等问题,运行后在任务管理器中出现多个exe进程却不可见。此类隐蔽问题会大量耗费内存,导致机器卡顿甚至死机,如忘记初始化hwnd也会产生同样问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作了一个名为LineSample的windows应用程序.

程序中WNDCLASS wndclass;忘了一句wndclass.hInstance=hInstance,10个属性只注册了9个。编译时并没有什么问题,就是不能运行,后来发现,不是不能运行,而是运行后并不能看见,我打开任务管理器一看,了不得!有20多个LineSample.exe在运行,应为我打开了很多次LineSample.exe。

我说昨天做的好几个程序怎么都不能运行,原来问题出在了这里!我曾怀疑我的U盘是不是坏了,但运行其他程序可以!我怀疑机房管理员是不是又重装机了,把C盘的某个组件搞丢了。但用VC建的hello world程序却能运行!

有一个程序我忘了hwnd=CreateWindow(..)也产生了同样的问题,并且在编译时给个警告,说hwnd没有初始化就在ShowWindow(hwnd,nCmdShow);中用了。

这种问题是隐蔽而危险的,运行了大量exe文件而不关闭,必然耗费着内存,我想很多死机的情况大概都是这样产生的,后台运行着无用的程序,而你又在桌面上看不到它,从而无法关闭它。当你但开一个什么程序,发现没有什么响应,其实它已经打开了,只是你看不到它,你或者继续打开它,或者放弃,打开其它程序,只要这个程序不关闭,它就耗费着内存,这样的程序多了,机器就变得非常卡,从而容易死机。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值