uintptr_t _beginthread()函数返回类型转换为HANDLE

生如夏花bld 2016-01-03 10:22:32
已知:1uintptr_t _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist );的返回类型uintptr_t
可以转换为HANDLE
2.HANDLE(句柄)是Windows操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄。句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。句柄列表:每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量,线程,和文件等,进程中的所有线程都可以访问这些资源。
3.uintptr_t类型使用来存储指针。


问题:能否将HANDLE类型转换为uintptr_t,会不会出错?
...全文
318 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
生如夏花bld 2016-01-05
  • 打赏
  • 举报
回复
uintptr_t是地址类型 HANDLE是句柄,不是资源的地址 将句柄数据强制转换为地址,如果这个数据对应的地址所指向的资源是HANDLE的资源么
oyljerry 2016-01-05
  • 打赏
  • 举报
回复
直接强制类型转换应该是可以。只要保证转换不会减去数据
蒋晟 2016-01-04
  • 打赏
  • 举报
回复
会出问题 You can also use the thread handle that's returned by _beginthreadex with the synchronization APIs, which you cannot do with _beginthread. https://msdn.microsoft.com/en-us/library/kdzttdcb.aspx

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧