【发布时间】:2019-03-04 14:50:20
【问题描述】:
我目前需要在 C++ UWP 程序的 3 到 5 页之间传递大约 10-15 个布尔变量和 1 个字符串变量。我尝试在头文件中使用全局变量,但由于 UWP 的结构,它最终会在每个页面中重复。我在 SO 上偶然发现了这篇文章:Pass some parameters between pages in UWP
这似乎是一个可行的选择,但我想知道如何准确地执行该帖子中列出的内容,但使用 C++ 和布尔变量。我不知道如何将 C# 代码转换为 C++ 代码,但它看起来非常相似。我从那篇文章中得到的另一个大问题是我在哪里声明公共类?在头文件中?在.cpp 文件中?
【问题讨论】:
-
你的头文件应该只包含全局变量的声明,而不是定义。如果您想按照链接文章中提到的方式进行操作,请创建一个包含所需信息的 WinRT 类并传递对其的引用。 (详细信息取决于您使用的是哪种 C++ 风格。C++/CX?C++/WinRT?C++/ABI?)
-
@RaymondChen 我目前正在使用 c++/CX。
-
在这种情况下,您可以在头文件中定义一个新的
ref class RestaurantParams和ref new。将其作为导航参数传递,并在OnNavigatedTo中执行auto parameters = safe_cast<RestaurantParameters^>(e->Parameter); -
@RaymondChen,您可以在一个小型测试程序中创建它吗?我对 UWP 开发团队还很陌生,我不明白你会把你提到的一半东西放在哪里。谢谢。
-
自定义
ref class的一个示例是 UWP 示例之一中的 CaptureFailedEventArgs。 (众多示例之一。)
标签: c++ parameters uwp