Windows 8 加速计输出“;WinRT转换错误“;在尝试使用它时

Windows 8 加速计输出“;WinRT转换错误“;在尝试使用它时,windows-8,windows-runtime,Windows 8,Windows Runtime,在我运行在ARM平板电脑(即Surface)上的WinRT应用程序中,我试图从加速计传感器获取事件,但它不起作用。我以这种方式附加它,基本上来自微软的例子: mAccelerometer = Accelerometer::GetDefault(); mListenerToken = mAccelerometer->ReadingChanged::add(ref new TypedEventHandler<Accelerometer^, AccelerometerReadingChan

在我运行在ARM平板电脑(即Surface)上的WinRT应用程序中,我试图从加速计传感器获取事件,但它不起作用。我以这种方式附加它,基本上来自微软的例子:

mAccelerometer = Accelerometer::GetDefault();
mListenerToken = mAccelerometer->ReadingChanged::add(ref new TypedEventHandler<Accelerometer^, AccelerometerReadingChangedEventArgs^>(this, &AccelerometerWin8Delegate::ReadingChanged));
异常在KernelBase.dll中引发!7539396a()

你知道这是什么原因吗?错误信息非常隐晦


我在运行Microsoft示例时没有遇到任何问题。

是否启用了加速器的功能?据我所见,没有明确的设置来启用加速器的功能。如果不可用,GetDefault()只返回nullptr。在我的例子中,有一个加速器,我可以附加一个事件处理程序,但是当它试图被触发时,我得到的是上面提到的异常。啊,是的,你是对的,似乎不需要任何功能。尝试破坏异常本身。为此,在Visual Studio中,转到
Debug…Exceptions
,然后启用异常。在这种情况下,我认为您可以从启用
WinRT Transform Error
异常开始,该异常位于
Win32 Exceptions
节点下。希望这能缩小原因。
First-chance exception at 0x7539396B (KernelBase.dll) in EAMTestApp.exe: 0x40080202: WinRT transform error (parameters: 0x80004002, 0x00000000, 0x00000027, 0x04B1F280).