如何在 WP 8.1 或 WP 8 中的本机 C++ 中使用命名空间 - Microsoft.Phone.Info

How to use namespace - Microsoft.Phone.Info - in native C++ on in WP 8.1 or WP 8

我在 WP8.1 上的原生 C++ 环境中工作。

假设我想调用一个像

这样的函数
Microsoft.Phone.Info::DeviceExtendedProperties.GetValue( "DeviceUniqueId" );

问题是怎么试都编译不通过

我知道"Microsoft.Phone.Info"是一个名字space,

在 C# 中 ppl 写道:

using Microsoft.Phone.Info;

但在 C++ 中,我试过

using namespace Microsoft.Phone.Info;

void func()
{
    DeviceExtendedProperties.GetValue("DeviceUniqueId");
}

没有通过编译。或

void func()
{
    Microsoft.Phone.Info::DeviceExtendedProperties.GetValue("DeviceUniqueId");
}

没有通过编译。

它一直告诉我这样的事情

'Microsoft' : illegal use of namespace identifier in expression

那么如何正确使用这个名字space?

谢谢大家的阅读和回答。 :-) 我找不到用于检索设备 ID 的 C++ 示例。 :-P

在本机 WP 运行时中,使用命名空间遵循此语法

 using namespace Windows::Phone::Info;

但是你会发现运行时不存在命名空间。仅在 WP Silverlight 中。

因此,您可以查看此 MSDN 网页,该网页告诉您他们将所有功能从 8.0 SL 转移到 8.1 运行时的位置。

Windows Phone Silverlight to Windows Runtime namespace and class mappings

然后,如果您搜索 "Windows.Phone.Info",它将引导您找到您应该调用的新函数。

这是 ID : EasClientDeviceInformation class

我想我明白了:

EasClientDeviceInformation^ deviceInfo = ref new EasClientDeviceInformation();
deviceInfo->Id; //<- is what I want

虽然 DeviceInformation 中的许多属性都可以在 EasClientDeviceInformation 上找到,但设备 ID 不是其中之一。相反,您应该考虑使用 ASHWID,这将为您提供特定于应用程序的硬件 ID。