未在此范围中声明AddClipboardFormatListener

时间:2016-07-08 20:01:46

标签: c++ winapi

我正在创建一个程序来监视Windows中的剪贴板更改,用C ++编写。

我会使用函数AddClipboardFormatListener,但编译器会给我这个错误:

  

AddClipboardFormatListener未在此范围内声明

即使我添加了windows.h库。

我该怎么做才能使这项工作?

1 个答案:

答案 0 :(得分:1)

AddClipboardFormatListener()RemoveClipboardFormatListener()GetUpdatedClipboardFormats()仅适用于Vista及更高版本。在XP及更早版本中,您需要使用SetClipboardViewer()ChangeClipboardChain()代替。

在Win32 SDK中,仅当WINVER至少为0x0600(又名_WIN32_WINNT_VISTA)时才声明侦听器函数,这意味着您的项目被配置为仅针对Vista +编译可执行文件

有关详细信息,请参阅Using the Windows Headers

如果为了与XP或更早版本的兼容性编译项目的WINVER较小,则无法在编译时静态链接到侦听器函数,否则在XP上运行时可执行文件将无法加载早。如果要在此类可执行文件中使用Vista +上的侦听器函数,则必须使用GetProcAddress()在运行时动态加载函数。