Win32 API 报告错误,并提供有关失败和成功的其他信息

示例

某些API调用可以通过多种方式成功或失败。这些API通常会返回有关成功调用和错误(例如CreateMutex)的其他信息。

if ( CreateMutexW( NULL, TRUE, L"Global\\MyNamedMutex" ) == NULL ) {
    // 失败:获取更多信息。
    DWORD dwError = GetLastError();
} else {
    // 成功:确定返回了哪个互斥锁。
    if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
        // 返回现有的互斥对象。
    } else {
        // 返回新创建的互斥对象。
    }
}