Dan*_*Dan 6 c++ windows winapi
我知道CreateFile返回的无效值是INVALID_HANDLE_VALUE.但是因为我也喜欢使用RAII,所以很容易将HANDLE放在shared_ptr(如下:)中
shared_ptr<void> handle (CreateFile(args),&CloseHandle)以确保句柄关闭.我唯一担心这种快速简便的RAII方法是CreateFile可以返回NULL作为HANDLE值.
NULL不是有效的句柄值.您可以从某些Windows API函数返回NULL以指示失败的事实中辨别出这一点.由于只有一个函数来处理句柄CloseHandle,因此它NULL不是有效值HANDLE.因此CreateFile无法回归NULL.
Raymond Chen写了一篇关于这个主题的博客文章:为什么HANDLE的返回值如此不一致?.
现在,我一无所知,shared_ptr<>所以不想评论你的想法是否合适.我只是在回答你提出的直接问题.
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |