【问题标题】:LockWorkStation - Compilation error - identifier not foundLockWorkStation - 编译错误 - 找不到标识符
【发布时间】:2010-03-24 15:59:47
【问题描述】:

我正在编写一个应用程序,我必须在其中锁定计算机屏幕(操作系统是 Windows)。我的应用程序是 C++。为此,我使用了 msdn 上定义的 LockWorkStation() API,http://msdn.microsoft.com/en-us/library/aa376875%28VS.85%29.aspx

我已经包含 windows.h,但我仍然收到编译错误:

.\source.cpp(5):错误 C3861:“LockWorkStation”:找不到标识符

这是一个给出错误的示例代码。

#include <Windows.h>
int main()
{
    LockWorkStation();
    return 0;
}

请告诉我我在这里缺少什么:(

我正在使用 MS-Visual Studio 2005。

问候。

【问题讨论】:

    标签: winapi visual-c++ compiler-errors


    【解决方案1】:

    直到 Windows 2000 才支持该功能。头文件经过版本控制,允许您为旧版本的 Windows 构建。您将要告诉编译器您想要支持的 Windows 最低版本如下:

    #define _WIN32_WINNT 0x0500
    #define WINVER 0x0500
    ...
    #include <windows.h>
    

    如果您打开 winuser.h,您会看到它被#if(_WIN32_WINNT &gt;= 0x0500) ... #endif 包围,这意味着它不可用,除非您的目标是 Windows 2000 或更高版本。

    有关版本宏的更多信息,请参阅http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx。还有新的 NTDDI_VERSION 定义,您可以在其中一次设置它们。

    【讨论】:

    • 由于这些定义会改变结构的大小,因此它不是最低版本,如果您不小心,更像是“仅此版本”。另一种选择是延迟加载(或使用 GetProcAddress)
    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多