【问题标题】:calling ApplicationView::GetForCurrentView() returns error in uwp app调用 ApplicationView::GetForCurrentView() 在 uwp 应用程序中返回错误
【发布时间】:2021-04-03 11:17:06
【问题描述】:

这就是我所说的。调整应用程序的窗口大小

auto view = ApplicationView::GetForCurrentView();
view.SetPreferredMinSize({ 300, 200 });
Window::Current().Activate();

和错误:

严重性代码描述项目文件行抑制状态 错误 LNK2001 未解析的外部符号“公共:静态结构” winrt::Windows::UI::ViewManagement::ApplicationView __cdecl winrt::Windows::UI::ViewManagement::ApplicationView::GetForCurrentView(void)" (?GetForCurrentView@ApplicationView@ViewManagement@UI@Windows@winrt@@SA?AU12345@XZ) BluetoothLE C:\Users\berkin1\Desktop\BluetoothLE\cppwinrt\App.obj 1

【问题讨论】:

  • 严重代码描述项目文件行抑制状态错误 LNK2001 无法解析的外部符号“public: bool __cdecl winrt::impl::consume_Windows_UI_ViewManagement_IApplicationView3: :TryResizeView(struct winrt::Windows::Foundation::Size const &)const " (?TryResizeView@?$consume_Windows_UI_ViewManagement_IApplicationView3@UApplicationView@ViewManagement@UI@Windows@winrt@@@impl@winrt@@QEBA_NAEBUSize@Foundation@Windows@ 3@@Z) BluetoothLE D:\BluetoothLE\cppwinrt\BlankPage.obj 1
  • 听起来您正在使用旧版本的 C++/WinRT 并且忘记包含正确的头文件。您使用的是哪个版本的 C++/WinRT 以及包含哪些标头?
  • vs2019最新sdk
  • 您忘记包含 winrt/Windows.UI.ViewManagement.h
  • 最新的 SDK 附带了一些 v1 版本的 C++/WinRT。那是古老的。请改用 NuGet 包(当前为 v2)。它将改为fail with a compiler error,这样更容易解析和响应。

标签: c++ windows uwp


【解决方案1】:

这就是我所说的。调整应用程序的窗口大小

如果您想调整您的应用程序大小,请在设置首选最小尺寸后调用TryResizeView方法。

auto view = ApplicationView::GetForCurrentView();
view->SetPreferredMinSize({ 300,200 });
view->TryResizeView({ 300,200 });

请确保以上代码在 ui 线程中运行。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-10-25
  • 2017-10-27
  • 2021-11-29
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
相关资源
最近更新 更多