VC中一些小知识点

本文详细解析在VC环境中与窗口句柄相关的基本概念,并阐述了多线程编程中的关键点。重点区分了char与char*的区别,解释了窗口句柄在窗口管理中的作用,同时强调了在多线程环境下正确理解句柄与线程生命周期的重要性。此外,文章还深入剖析了char类型与指针的区别,提供了清晰的概念对比。

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

一. 在VC中与每个窗口有关的类,有一个变量(hwnd)都保存了这个窗口的句柄。

二.在VC中,对于对于多线程编程,如果相对线程函数进行封装的话,可以将它放在对应的类的里面,但前面需要添加static关键字,原因是此时多线程函数,此函数在创建类的时候就已近穿件了,它并不属于哪一个对象所有。

三.在VC中使用多线程编程时,使用CloseHandle()并不代表关闭次线程。

CloseHandle invalidates the specified object handle, decrements the object's handle count, and performs object retention checks. After the last handle to an object is closed, the object is removed from the system.

Closing a thread handle does not terminate the associated thread. To remove a thread object, you must terminate the thread, then close all handles to the thread.

引自MSDN

CloseHandle 使句柄无效,但不能终止该线程。

关闭该线程,系统会递减该内核对象的使用计数,当创建完线程之后,系统也会递减该线程的使用计数,当使用计数为0时,系统释放该对象。若不关闭,该系统会一直保持着对该线程对象的引用,一直到进程结束。

 四.首先讨论一下,char与char*的区别。

例如:char *ch="abcd"此时ch是一个指针,指向abcd的指针。而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。 

           char   ch,此时的ch只是一个单一的字符。

           char   ch[20]="abcd",此时ch指针指向的第一个单元为数组元素的第一个值。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值