在基于C ++的UWP应用中缺少ShutdownManager类吗?

时间:2019-04-03 16:20:26

标签: c++ uwp windows-iot-core-10

我目前正在使用Windows IoT Core,并且正在尝试为Raspberry Pi 3b开发基于C ++的UWP应用。 我想从应用程序内部重新启动/关闭Pi,但是我不确定该怎么做。

UWP api参考列出了与C ++ Windows :: System对应的C#Windows.System。但是似乎并非所有类都可以在C ++中使用。 UWP samples(C#)利用ShutdownManager类进行重新启动和关闭,但是C ++名称空间中不存在该类。现在,我不确定应该如何利用API来实现此功能。还有其他可能解决C ++问题吗?

解决方案: 我错过了 UWP的Windows IoT扩展。这些必须在Visual Studio中手动添加,方法是右键单击“项目”,然后单击“添加”->“参考”->“通用Windows”->“扩展”。现在,我可以访问名称空间,并且能够重新启动和关闭设备。

1 个答案:

答案 0 :(得分:0)

  

但是似乎并不是所有的类都可以在C ++中使用。

这是否意味着当您构建C ++ UWP项目时,它无法成功构建,或者当您在设备上运行该应用程序时,出现了异常吗?

ShutdownManager API在C ++中可用,确实包含在Windows :: System命名空间中,请参考此document。并且请注意:

  

此API需要使用IoT systemManagement 功能,并且   将物联网包含在 IgnorableNamespaces 列表中。用户可以添加   将以下内容添加到他们的 Package.appmanifest 中:,并将物联网添加到其现有的列表中   IgnorableNamespaces。

以下代码在我的设备上正常工作。

changeScroll(){ 
    let style = document.body.style.overflow 
    document.body.style.overflow = (style === 'hidden') ? 'auto':'hidden'
} 

<div 
    onMouseEnter={this.changeScroll} 
    onMouseLeave={this.changeScroll} /> 
    <ReactComponent/> 
</div>