草庐IT

C++ VS2010 判断是 Release 还是 Debug

我想在C++2010中检查构建是作为调试还是发布运行。有没有简单的方法来检查?谢谢。 最佳答案 VisualStudio生成_DEBUG和NDEBUG作为define。您可以在编译时检查它。#ifdef_DEBUG//THECODEISCOMPILINGINDEBUGMODE.#endif 关于C++VS2010判断是Release还是Debug,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

c++ - 自 (vs2012/2010/2013) 以来,msvcrt 是否使用不同的堆进行分配

我前段时间读过相关内容,但无法在msdn或网络上的其他任何地方找到对crt的更改。我认为VS2012的VC++版本中的msvcrt已更改,不再使用privateheap进行分配,而是使用processheap。Afaik它针对的是在多个库中分配的内存问题,这些库静态链接到crt以及随后在分配它的另一个库中释放内存。这是我观点的一个重大变化,我想知道为什么我找不到任何文档提到它。要么是那个,要么是我编造的(我怀疑这一点,因为我前段时间和同事讨论过这个话题) 最佳答案 没错。此更改是在VS2012中进行的,并且似乎是future的行为。

c++ - 是否可以在 visual studio 2010 中编译 ffmpeg?

是否可以在visualstudio2010中从ffmpeg编译源代码?难不难?如果可能,只是寻求一些建议(和说明)。:-)干杯,皮特 最佳答案 显然Google的某个人已经编写了一个C99到C89的“下转换器”,部分目的是让ffmpeg使用VisualStudio进行编译:http://blogs.gnome.org/rbultje/2012/09/27/microsoft-visual-studio-support-in-ffmpeg-and-libav/他们编写的工具目前只有源代码形式。虽然该工具是用C编写的,但它使用了一些编译

c++ - 编译器之间的浮点不匹配(Visual Studio 2010 和 GCC)

我正在尝试解决一个突然出现的跨平台问题,但我不太确定该怎么做。这是一个演示程序:#include#includeintmain(){intxm=0x3f18492a;floatx=*(float*)&xm;x=(sqrt(x)+1)/2.0f;printf("%f%x\n",x,*(int*)&x);}在VS2010中编译时在Windows上的输出是:0.8856383f62b92a使用GCC4.8.1编译时的输出(ideone.comsample)是:0.8856383f62b92b在需要在多个平台上以相同方式运行的程序过程中,这些小的不匹配最终会膨胀成一个严重的问题。我不太关心“准

c++ - 使用 VS2010 的 msbuild 构建时,我可以从命令行设置平台工具集吗?

当我从命令行使用msbuild构建VS2010时,是否可以在不编辑vcxproj文件的情况下从命令行将平台工具集更改为v90(即VisualStudio2008工具链)?我目前在构建脚本中使用以下命令行:mysystemf("msbuild%s.vcxproj/t:rebuild/p:configuration=release,platform=%s",prjname,platform); 最佳答案 是的,您可以在不更改vcxproj文件的情况下设置PlatformToolset。如果您打开vcxproj文件,您会看到有一个Plat

c++ - 如何在 Visual Studio 2010 中使用 GStreamer?

我必须自己编译GStreamer吗?我可以使用VisualStudio2010来完成吗?我正在努力寻找一个很好的分步指南,其中包含有关如何执行此操作的说明。有好的吗?我的目标是使用QtGstreamer构建应用程序在VS2010上。 最佳答案 此链接提供了一个完整的方法compileGStreamerusingVisualStudio这个是compileQtGstreamer. 关于c++-如何在VisualStudio2010中使用GStreamer?,我们在StackOverflow

c++ - Visual Studio 2010 中是否有编译器设置以确保可移植C++ 的编写?

我从使用VisualStudio2010进行编译的开发人员那里收到C++源代码,然后我需要在各种不同的编译器下重新编译:GCC、LLVM、其他版本的VisualStudio等。有时他发送给我的代码(在VS2010中编译时没有警告)在其他编译器下编译失败。是否有任何他可以在VS2010中设置的编译器设置来增加他的代码干净可移植的可能性? 最佳答案 在语言层面,没有Elixir。您能做的最好的事情就是尽可能地遵守语言标准。如果您利用特定于特定编译器的扩展,大多数编译器都可以选择发出警告或错误(对于VisualC++,/Za将禁用非标准语

c++ - VS2010 RC - 调试器中只有 100 个 std::map 元素

当我想查看std::map容器的所有元素时,我在VS2010RC中调试我的应用程序时遇到了一个小问题。当调试器到达断点时,我想在元素检查器中检查map的值(在“本地”窗口和用鼠标悬停变量名称后的弹出窗口中),我正在向下滚动它在100个元素上停止的元素列表,我不能下一个元素。map包含200多个元素(map的计数器参数正确显示了这一点)但我无法在元素检查器中查看所有元素。即使是最简单的问题也会出现std::map填充了200个int值。也许这是设置的问题,但我已经尝试了很多组合,还是不行。也许有人知道如何解决这个问题。预先感谢您的帮助。 最佳答案

c++ - 在 vc2010 中为映射值类型创建指向成员的指针

我们在将代码移植到VC++的旧版本2010时遇到了问题。问题是由VC中的map实现引起的,它导致non-type-argument中的pointer-to-member派生到基本转换被要求:#include#includetemplateboolf(MapValueTypeconst&v);intmain(){typedefstd::mapMapType;MapTypem;std::find_if(m.begin(),m.end(),f);}生成以下消息:Standardconversionfrompointer-to-memberofbasetopointer-to-memberof

Visual Studio 2010 中的 C++ 访问修饰符自动缩进慢慢地让我发疯——它可以改变吗?

在VisualStudio中进行C++编程时,它坚持要在访问修饰符上给我这些可怕的缩进-如果有人真的喜欢这种方式,我表示哀悼;)(伙计们开个玩笑!)publicclassMyClass{public:MyClass();~MyClass();intwowAnInt();}不用说,我想要这个:publicclassMyClass{public:MyClass();~MyClass();intwowAnInt();}有什么方法可以使用任何东西(我有ReSharper和Highlighter)或者VanillaVS来实现这一点吗? 最佳答案