草庐IT

visual-c++-2017

全部标签

c++ - 在 winapi 中复制 Visual Studio 2013 自定义 GUI

我正在使用C++和Winapi编写一个GUI程序,我希望我的窗口具有自定义边框。Windows桌面上的VisualStudio2013做到了这一点,它用自己的方案替换了典型的窗口边框,同时仍然具有与具有关闭、最小化和恢复按钮以及可移动的普通窗口相同的功能。一种冗长的方法是创建一个具有WS_POPUP样式的窗口并使用碰撞检测拦截鼠标事件。然而,考虑到Microsoft本身已经创建了具有不同GUI样式的程序,我想到可能有一种更标准化的方法来执行此操作。需要明确的是,我对使用QT或GTK等第三方API不感兴趣。我只想使用Microsoft提供的库来执行此操作。考虑到这些限制,是否有其他方法可

c++ - 为什么 Visual C++ 2015 允许 std::atomic 赋值?

几天前,我写了如下内容:structA{std::atomic_boolb=false;};使用VC++2015编译器在VisualStudio2015Update3中编译,没有弹出任何错误。现在我在Ubuntu上用GCC(5.4.0)重新编译了同样的东西并得到了错误:useofdeletedfunction'std::atomic::atomic(conststd::atomic&)我在ideone上遇到了同样的错误,设置为C++14(不确定它使用的是哪个编译器版本)。当然,将代码更改为以下内容可以解决gcc的问题:structA{std::atomic_boolb{false};}

c++ - 在 Visual Studio 2017 中使用 OpenMP 3/4

尝试使用OpenMP3的功能#pragmaompparallelforcollapse(2)在VisualStudio2017中;我得到errorc3005:'collapse'unexpectedtokenencounteredonopenmp'parallelfor'directiveVisualStudio2017似乎只支持OpenMP2。在requesttosupportOpenMP4.5VS团队说的Wehavenoplansatthistime.另一个回答说Fortunatelyclang-clhasbecomeaviablealternativewithOpenMP4sup

c++ - CMake 和 Visual Studio 资源文件

我正在将使用VisualStudio2005创建的C++项目转换为CMake,并且偶然发现项目中包含的资源文件存在一些问题。该项目包括一个.rc文件,一堆.ico文件和一个.rc2文件。常规.rc文件在生成的项目中工作正常,并使用资源编译器。然而,.ico和.rc2文件在刚刚包含时会导致问题,因为在生成的项目中,VisualStudio会尝试使用C/C++编译器编译它们。我假设这些文件包含在.rc文件中,因此不将它们包含在CMakeLists.txt文件中可能会起作用,但显然可以将它们列在项目(它们在原始项目中可见)我想这样做,以便生成项目的用户可以看到正在使用这些文件。在CMake中

c++ - 在 Visual C++ 中使用 Git 进行自动版本控制

我在VS2013中有一个C++项目。在过去的类似项目中,我使用SubWCRev和Subversion来自动生成版本号。我有一个这样的模板文件:#defineMAJOR_VERSION2#defineMINOR_VERSION2#defineMICRO_VERSION0#defineBUILD_VERSION$WCMODS?$WCREV$+1:$WCREV$$#defineQUOTE_(x)#x#defineQUOTE(x)QUOTE_(x)#defineBUILD_VERSION_STRINGQUOTE(MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION

c++ - visual studio 2010 c++调试符号已加载但找不到源代码

我在2010年内指定了符号(pdb)文件,以便正确加载它,但我得到了Nosourceavailable错误并且BrowsetoFindSourceCode是变灰了。有谁知道我如何指定源代码目录或查看pdb内部以找出它在哪里?编辑:我的DLL正在被外部程序调用。错误发生在我的DLL中,所以我有源代码。发生错误时,我单击“调试”,加载了pdb符号,但未加载源代码。 最佳答案 如果您将DLL从其构建目录中移出,则调试器不太可能自行找到源代码文件。您可以做的第一件事是在“解决方案资源管理器”窗口中右键单击“解决方案根节点”,“属性”、“通用

c++ - 无法在 Visual Studio 2013 调试器中调试 CRT 源文件

我刚刚安装了VisualStudio2013并尝试创建一个“HelloWorld”控制台C++应用程序。我正在尝试通过CRT源代码进行调试,但我无法这样做。我注意到源文件仍安装在ProgramFiles\VisualStudio位置,但调试器无法找到它们。我曾经能够在VisualStudio2012中执行此操作。出了什么问题? 最佳答案 从VisualStudio2013开始,VisualC++库的PDB文件将不再随VS产品一起提供。它们将只能通过Microsoft符号服务器使用。因此,您需要在VisualStudio选项中设置正确

c++ - 在 Visual Studio 中快速插入 include guard 的方法

我想自动插入includeguards到VisualStudio2012中新创建的头文件中。是否有用于此目的的任何预定义片段?编辑:我知道#pragmaonce及其编译器的广泛支持。但是我们的编码风格迫使我使用include守卫。 最佳答案 在visualstudio2012中使用组合键Ctrl+K,Ctrl+S它允许您用代码片段包围选定的代码,例如:#if,#ifdef,#ifndef,if,类、do、enum等等..或指定您自己的:http://msdn.microsoft.com/en-us/library/ms165394.

c++ - 如何在 Visual Studio 的 CMake 中获取当前配置(发布/调试)

我在VisualStudio2013、CMake3.5.1、Windows10上。我正在尝试通过CMake复制一些文件,如下所示:file(COPY${IMAGES}DESTINATION${CMAKE_BINARY_DIR}/bin/Release)是否可以用代表配置的变量替换“Release”:file(COPY${IMAGES}DESTINATION${CMAKE_BINARY_DIR}/bin/${Variable})我尝试过file(COPY${IMAGES}DESTINATION${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})但是CM

c++ - 为什么这个enable_if函数模板不能专用于VS2017?

以下使用VS2015编译,但在VS2017中失败并出现以下错误。代码是否在做一些非标准的事情,已在VS2017中修复,或者VS2017应该编译它?#include"stdafx.h"#includetemplateconstexprautoToUnderlying(Ee){returnstatic_cast>(e);}templateboolconstexprIsFlags(T){returnfalse;}templatestd::enable_if_t>operator|(Elhs,Erhs){returnToUnderlying(lhs)|ToUnderlying(rhs);}en