问题标签 [visual-c++-2012]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
359 浏览

c++ - VC++11 映射和多映射迭代器(重载)C2535

我只是在玩新的 VS 2012,我可能对新的 C++11 有问题。当我在项目设置中将平台工具集设置为 VS2010 (v100) 时,这种代码可以完美运行。

。H:

.cpp:

但是当我为 VS2012 (v110) 更改它时,我会收到以下错误:

为什么重载在 VC++11 中不起作用?

0 投票
1 回答
386 浏览

c++ - 扩展 typedef 结构(与 VC++11 兼容)

我正在开发一个使用 Visual C++ 编译器 2010(和 2008)编写并使用的项目。我正在尝试使用新的 VC++11,但我对已经实现的功能有疑问。我们已经实现了 typdef struct atomic_intmemory_order但它们在 VC 11 中添加了几乎相同的功能,我得到了这些错误

如果我将我们的实现捕获到#if 语句中

似乎可行,但是缺少一个未在 VC 11 中实现的功能,并且另一个功能无法转换参数

请帮我找到一些解决方案......如何从 VC++11 覆盖整个atomic_int,或者如何将 memeber 添加到?谢谢

0 投票
1 回答
704 浏览

c++ - Why does this template code work in VS2010, but not in VS2012?

I have inherited a project making heavy use of template meta programming, and am now in the process of upgrading from Visual Studio 2010 to 2012. Some of the template-code no longer works in 2012. I have distilled a minimal example:

Gives this error message:

Further down in MyClass, I can use T::Nested<i>, it is just the typedef that does not work.

This example compiles in 2010, but not in 2012. What is wrong with this code?

0 投票
1 回答
14310 浏览

visual-c++-2012 - VC++ 2012:如何将 version.inc(单独维护)中的版本信息包含到 .rc 文件中

摘要:通过预处理器宏在单独维护中定义了版本详细信息version.inc......如何将宏值包含到资源版本定义块中?

我的version.inc文件存储在 UTF-8 中(即纯 ASCII 在这种情况下)。其完整内容如下(APS_这里的前缀与应用的真实名称有关,.aps与资源编译器生成的文件无关):

Visual Studio 2012 C++ 似乎对资源脚本文件 ( app.rc) 比 Visual Studio 2010 更挑剔。我注意到的第一件事是,在手动编辑时,我必须保留 UTF-16 编码。你能证实吗?有这方面的文件吗?

app.rc说看起来像这样的版本块:

在 Visual Studio 的早期版本(2005 和 2010)中,我能够拥有这样的相关信息version.rc2

然后通过手动编辑将version.rc2其包含在其中。但是,我无法使用 Visual Studio 2012 项目和资源文件重复该过程。我可能犯了一些我看不见的错误。这种方法是否也适用于 Visual Studio 2012?app.rcapp.rc

感谢您的时间和经验,

彼得

0 投票
3 回答
3620 浏览

c++ - 可以将类的成员命名为与其类型(另一个类)相同的名称吗?

尝试在不同的编译器上编译以下代码会给我两个不同的结果:

如您所见,在内部T,我有一个与之前定义的类同名的对象S


在 GCC 4.7.2 上,我收到以下S S;与内部声明有关的错误T

错误:'ST::S' [-fpermissive] 的声明
错误:从'struct S' [-fpermissive] 更改'S' 的含义

但是,将其移出类(或移入main可以正常工作

它给我的错误到底是什么意思?


在 Visual Studio 2012 中,整个程序编译并运行,没有任何错误。将它粘贴到这个 Clang 3.0 编译器中也不会给我任何错误。

哪个是对的?我真的可以这样做吗?

0 投票
2 回答
1990 浏览

c++ - Visual C++ 2012 (x86) 中可能的编译器错误?

我目前在使用VC++ 11 (CTP Update 1)为 x86 目标编译时遇到随机浮点错误。请参阅下面的简短示例“test.cpp”,并使用以下命令进行编译:

输出应该是10 == 10,但它在启用(整个程序优化)10 == 0时产生。/GL问题似乎是get_scaling_factor()将结果推送到浮点堆栈上,但调用函数期望它在 SSE 寄存器XMM0中。

问题:我是否遗漏了一些明显的东西,或者这真的是一个错误?当然,测试程序没有意义,因为它是一个精简的测试用例。

测试.cpp:


更新

Microsoft 确认的问题。它甚至会影响这样的直接代码:

0 投票
3 回答
3504 浏览

c++ - 调试 Win32 应用程序挂起

我无法找到导致 Win32 应用程序挂起的原因。该软件在一个紧密的循环中将一些数据呈现给 OpenGL 视觉对象:

该代码使用 VC11 Update 1 (CTP 3) 编译。在运行优化的二进制文件时,它会getIndices()在几个循环之后挂在对(更多关于这一点的)的调用中。我已经有了...

  • 三重验证所有缓冲区,甚至附加 CRC 以确保我没有任何缓冲区溢出
  • 在循环内添加了对HeapValidate()的调用,以确保堆没有损坏
  • 使用 ApplicationVerifier
  • 使用GFlags 和 PageHeap启用堆分配监视。
  • 应用程序锁定时闯入 WinDbg

我没有发现访问分配缓冲区的代码有任何问题,也没有发现任何堆损坏。但是,如果我禁用低碎片堆,问题就会消失。indices如果我为缓冲区使用单独的(低碎片)堆,它也会消失。

无论如何,这是导致死锁的堆栈跟踪:

为了完整起见,我将 的代码(lc::db::PackedIndices::unpackIndices()包括为调试添加的所有代码)发布到http://ideone.com/sVVXX7

触发调用的代码KiUserExceptionDispatcher(*p++) = static_cast<T>(index);( mov dword ptr [esp+10h],eax)。

我似乎无法弄清楚发生了什么。似乎抛出了异常,但没有调用我的异常处理程序。应用程序只是挂起。我检查了任何死锁的关键部分 ( !lock),但没有找到。此外,我不明白为什么应该引发异常,因为内存位置都是有效的。谁能给我一些提示?

更新

我试图找到抛出的异常类型:

0 投票
2 回答
1003 浏览

c++ - 插入 std::map 时的常量问题

我在尝试将一对插入地图时遇到了一个常量问题。编译器错误是:

导致错误的行是:

m_materials 贴图声明如下:

错误 1 ​​错误 C2166: l-value 指定 const 对象 c:\program files (x86)\microsoft visual studio 11.0\vc\include\utility 114

谁能解释我如何解决这个问题?

0 投票
1 回答
12562 浏览

c++ - VS 2012 中的可变参数模板(Visual C++ 2012 年 11 月 CTP)

我安装了Visual C++ 编译器 2012 年 11 月 CTP并创建了一个 C++ 控制台项目。我写了这个

然后我按 F6 在 IDE 中构建。我在第 4 行收到此错误

编译列表“可变参数模板”所以我相信这应该有效。我确实理解智能感知可能不正确,但是“编译器”应该可以工作。我不能从 IDE 构建吗?我必须在某处启用某些东西吗?int i{4};似乎也不起作用,我确信那是有效的统一初始化。

0 投票
2 回答
4020 浏览

visual-c++ - 使用 CMake、C++ 和 Visual Studio 2012 进行分析

我正在使用 CMake 2.8.10.1 为 Visual Studio 2012 Ultimate(64 位)生成项目文件。生成的解决方案包含一个库、一些测试和一些可执行文件。

我想介绍一些应用程序。当我选择“ANALYZE”->“Start Performance Analysis”时,我遇到错误消息“ No launchable projects are available for profiling ”。如何分析 CMake 生成的解决方案?