草庐IT

GlobalLock

全部标签

c++ - Windows API - 剪贴板 - GlobalLock - 使用还是不使用?

我见过这样的实践,如果您要通过GetClipboardData()从Windows剪贴板中获取内容,则在返回的句柄上调用GlobalLock()函数GetClipboardData()首先-在检索数据之前(例如转换和存储)。但是我发现(至少在C++11中)我可以在没有锁定的情况下获得相同的数据...所以有3个子问题...这怎么可能?单线程应用仅“单”运行安全吗?单线程应用程序同时多次运行安全吗?...导致一个大问题-使用或不使用GlobalLock()&&什么时候?PS:当然,在每个潜在的GlobalLock()之后,您应该调用GlobalUnlock()这是我检索数据的简单部分:HA

windows - 如果我调用 GlobalLock(),然后未能调用 GlobalUnlock(),会发生什么情况?

在Win32中,为了将数据粘贴到剪贴板,我必须调用GlobalAlloc(),然后是GlobalLock()获取指针,然后复制数据,然后调用GlobalUnlock()和SetClipboardData()。如果代码在C++中,则可能会在调用GlobalLock()和GlobalUnlock()之间抛出异常,如果我不处理这个GlobalUnlock()不会被调用。这是一个问题吗?如果我调用GlobalLock()并出于某种原因跳过配对GlobalUnlock()调用,到底会发生什么? 最佳答案 问题不仅仅是关于是否调用GlobalU