1

我正在尝试使用 C++ 从使用“Windows 运行时组件 (WinUI 3)”Visual Studio 模板创建的新项目中调用GetDoubleClickTime Win32 API 函数。

为此,我将添加#include <Windows.h>pch.h文件中,然后简单地调用提到的函数。但是,之后我收到以下编译器错误:error C3861: 'GetDoubleClickTime': identifier not found.

根据模板描述,这个项目应该创建一个在桌面和 UWP 应用程序中都可用的库。我知道GetDoubleClickTime无法从 UWP 调用该函数。但它必须适用于桌面应用程序。

我怎样才能使这项工作?

4

1 回答 1

2

显然,它在幕后创建了一个沙盒 UWP 项目。请参阅此 GitHub 问题,并在对话的最底部查看 @sylveon 的评论,以获取潜在的修复/工作。

您可以立即编辑 vcxproj 的全局 PropertyGroup 并添加这两个指令,以强制 UWP 项目使用桌面 API 集,并链接桌面 CRT(无需携带 VCRT 转发器,老实说,这是一个可怕的黑客攻击)

    <_NoWinAPIFamilyApp>true</_NoWinAPIFamilyApp>
    <_VC_Target_Library_Platform>Desktop</_VC_Target_Library_Platform>

或者,似乎仅设置 <AppContainerApplication>false</AppContainerApplication> 也有效

于 2022-01-12T21:09:43.720 回答