如何从Windows应用商店应用程序中的C ++访问System.Environment?

时间:2013-01-22 23:35:27

标签: c++ windows-runtime c++-cx

我正在尝试调试用C ++编写的Windows(Metro)商店应用程序中的几个线程之间的死锁,让每个线程在不同的点存储它的ID会很有帮助,这样我就可以找出每个线程的哪个线程其他块线程正在等待。

.NET for Windows Store apps overview表示在System命名空间中使用Environment::CurrentManagedThreadId来访问该线程。我原以为我可以简单地写一下:

int threadId = System::Environment::CurrentManagedThreadId;

但是,当我尝试编译cpp文件时,Visual Studio 2012抱怨“'System':不是类或命名空间名称”。

我是否缺少定义System命名空间的头文件?我没有在System.Environment或Environment.CurrentManagedThreadId网页中看到任何头文件。

FWIW,Visual Studio 2012中的对象浏览器向我显示System.Environment对象,对象浏览器显示它应具有CurrentManagedThreadId属性。

1 个答案:

答案 0 :(得分:0)

C ++ / CX不以.NET为目标。您无法直接从C ++ / CX代码使用.NET Framework。

您可以使用Windows API函数GetCurrentThreadId来获取当前的线程标识符。