首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

句柄赋值会导致引用计数增加吗——CloseHandle有关问题

2012-12-16 
句柄赋值会导致引用计数增加吗——CloseHandle问题1、句柄赋值会导致引用计数增加,赋值之后是不是新的句柄变

句柄赋值会导致引用计数增加吗——CloseHandle问题
1、句柄赋值会导致引用计数增加,赋值之后是不是新的句柄变量也需要CloseHandle呢
   HANDLE hHandle2 = hHandle1;//hHandle1调用了CloseHandle了,hHandle2还需要再调用吗? 

2、循环调用返回句柄的API,赋值给同一个句柄变量需要每次CloseHandle吗
HANDLE hHandle = NULL;
for(int i= 0;i < 100;i++)
{
   hHandle = CreateThread(……);//
   //这个句柄需要每次都在这个位置CloseHandle(hHandle)吗
}
//还是只需要在这个位置CloseHandle(hHandle)呢

3、什么类型的句柄需要CloseHandle呢,还是所有的句柄都需要CloseHandle
   HWND 窗口句柄需要CloseHandle?
[最优解释]
1.hHandle2在CloseHandle(hHandle1)之后,不需要再CloseHandle。hHandle2可以直接赋值为NULL。
2.如果需要CloseHandle的话,要放在循环里面。如果放在循环外面,只是CloseHandle了最后一次循环产生的Handle
3.

The CloseHandle function closes handles to the following objects: 

Access token 
Communications device 
Console input 
Console screen buffer 
Event 
File 
File mapping 
Job 
Mailslot 
Mutex 
Named pipe 
Process 
Semaphore 
Socket 
Thread
 

[其他解释]
引用:
1、句柄赋值会导致引用计数增加,赋值之后是不是新的句柄变量也需要CloseHandle呢
   HANDLE hHandle2 = hHandle1;//hHandle1调用了CloseHandle了,hHandle2还需要再调用吗? 

2、循环调用返回句柄的API,赋值给同一个句柄变量需要每次CloseHandle吗
HANDLE hHandle = NULL……


、循环调用返回句柄的API,赋值给同一个句柄变量需要每次CloseHandle吗
HANDLE hHandle = NULL;
for(int i= 0;i < 100;i++)
{
   hHandle = CreateThread(……);//
   //这个句柄需要每次都在这个位置CloseHandle(hHandle)吗
}


要看你是不是用这个句柄了,如果不适用,

直接在 for循环里closehandle.


3.进程,线程,内核对象,filemapping, 还有文件也是要关闭的,比如:createfile

1. 不会吧,没听说啊



[其他解释]
1. 不用
2. CloseHandle(CreateThread(...)); 
[其他解释]
create 和 close 应该一一对应
[其他解释]
我想应该不需要吧
[其他解释]
引用:
我想应该不需要吧


哈哈,好久没声音了,莫非这就是大阪的个人肖像???
[其他解释]
引用:
引用:我想应该不需要吧

哈哈,好久没声音了,莫非这就是大阪的个人肖像???

天天都能看见老大在回复的。。。
[其他解释]
我是来看版主的。

热点排行