或者您是否仅限于"Metro风格"应用程序和Windows应用商店应用程序?
起初我认为C++/CX是C++/CLI的一个很好的替代品,因为它有一些漂亮的C#-esque关键字('sealed','partial'),它也可以编译为本机代码,而不是使用.NET.但在线阅读,我所能找到的是有关Windows应用商店应用和Metro风格应用的信息......
另外,WinRT仅适用于Windows 8及更高版本吗?
谢谢你的帮助.
我已经用 C++ 编码多年,过去我使用过线程,但我现在才开始学习多线程编程及其实际工作原理。
到目前为止,我在理解这些概念方面做得还不错,但是有一件事让我感到困惑。
我在网上找不到任何足以让我理解的内容。
我用 C++ 编写代码,但我确信这个问题适用于许多不同的编程语言。
我有一个问题,我的应用程序在执行任何操作之前都失败了调试断言(_CrtIsValidHeapPointer).我知道这是因为我在main函数的第一个语句中添加了断点,并且在到达断点之前它未通过断言.
有没有办法以某种方式"逐步"调用我的主函数调用之前发生的一切?像静态成员初始化等等.
我应该注意我的程序是用C++/CLI编写的.我最近升级到了VS2015,目标是v140工具集.我正在使用的C++库(ImageMagick,libsquish和我自己的C++库之一)已经过单独测试,我没有收到这些库的断言失败,所以它必须是我的主要应用程序.
自从我从VS2013升级以来,我没有更改任何代码,所以我对正在发生的事情感到有点困惑.
编辑:这是调用堆栈.这是在断言失败窗口中单击"重试"之后.然后我会抛出许多其他异常,但每次运行程序时它们都不同.
> ucrtbased.dll!527a6853()
[Frames below may be incorrect and/or missing, no symbols loaded for ucrtbased.dll]
ucrtbased.dll!527a7130()
ucrtbased.dll!527a69cb()
ucrtbased.dll!527c8116()
ucrtbased.dll!527c7eb3()
ucrtbased.dll!527c7fb3()
ucrtbased.dll!527c84b0()
PathCreator.exe!_onexit(int (void)* const function) Line 268 + 0xe bytes C++
PathCreator.exe!atexit(void (void)* const function) Line 276 + 0x9 bytes C++
PathCreator.exe!std::`dynamic initializer for '_Fac_tidy_reg''() Line 65 + 0xd bytes C++
[External Code]
mscoreei.dll!7401cd87()
mscoree.dll!741fdd05()
kernel32.dll!76c33744()
ntdll.dll!7720a064()
ntdll.dll!7720a02f()
Run Code Online (Sandbox Code Playgroud)