草庐IT

visual-artifacts

全部标签

c++ - NDEBUG 和 _DEBUG 在 Visual Studio 2015 中定义在哪里?

我可以转到默认VisualStudio2010项目的设置,并查看在“配置属性”>>“C/C++”>>中定义的NDEBUG或_DEBUG“预处理器”的“预处理器定义”:如果我转到默认VisualStudio2015项目的设置,“预处理器定义”是空的!我什至没有在VisualStudio2015.vcxproj中看到NDEBUG或_DEBUG。我知道它的定义是正确的,因为assert(false)只在调试配置中触发。Microsoft将这些定义隐藏在VisualStudio2015的什么地方?我可以修改它们吗,还是已经被我拿走了?编辑:Niall'sanswer是正确的。我不明白的是,如果

c++ - 如何处理 Visual Studio 中的第 3 方 C++ 库 LNK4099 警告

我有一个使用链接器设置的VisualStudioc++项目/WX(TreatWarningsAsLinkerErrors=true)在调试中,我使用/Zi(调试数据库)进行编译,效果很好。现在我有一个带有静态库的第3方SDK,但没有.pdb文件。只要我在调试中链接这个文件,我就会得到LNK4099:3rd-party.lib(3rd-party.obj):warningLNK4099:PDB"vc90.pdb"wasnotfound"3rd-party.lib(3rd-party.obj)"orwith"C:\OutDir\vc90.pdb"请注意,此消息具有误导性,因为将vc90.p

c++ - Visual Studio 2015 不会抑制错误 C4996

VisualStudio2015CommunityEdition在debug中编译时出现以下错误,但在release中编译时不会出现以下错误:std::copy::_Unchecked_iterators::_Deprecate':Callto'std::copy'withparametersthatmaybeunsafe-thiscallreliesonthecallertocheckthatthepassedvaluesarecorrect.Todisablethiswarning,use-D_SCL_SECURE_NO_WARNINGS.Seedocumentationonhow

c++ - 带有 Visual Studio 和 cmake 的 CUDA

我正在使用CUDA8.0和VisualStudio2013。到目前为止,我一直在使用CMake构建我的VS-Solutions,并且运行良好。通常使用以下代码片段构建cuda项目:FIND_PACKAGE(CUDAREQUIRED)INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})link_directories(${CUDA_INCLUDE_DIRS}/../lib/x64)CUDA项目正在运行,编译和运行没有任何问题。但是我在项目属性中缺少CUDAC/C++字段。当我直接在VS中创建一个VS-Solution时,我可以选择NVIDIA/CUDA8.0

c++ - 让 Visual Studio 中断用户(std::exception)异常?

我的代码抛出未处理的异常,但VisualStudio中的调试器只中断系统抛出的异常。例如,getaddrinfo的返回值不为零,我的异常应该首先抛出-事实上,如果我在第171行放置一个断点,它会被命中-但调试器只在调用socket时中断。我知道Ihavetoaddmyowntypesexplicitly,orelsecheckAllC++Exceptionsnotinthislist,在ExceptionSettings中,但这是我抛出的std::exception,而std::exception是检查过。如何让VisualStudio调试器在出现异常时自动中断?

c++ - Visual Studio 2017 是否完全支持具有 [[deprecated]] 属性的 N4266?

我目前正在研究C++17的新特性。我偶然发现了这个功能N4266,它指出现在枚举和命名空间也可以使用属性。不同消息来源称,VisualStudio2017已经完全支持该功能。我用[[deprecated]]属性编写了一个测试。对于namespace,这非常有效。但是,不会为枚举生成警告。我的实现有错误吗?我错过了什么吗?enumMyEnum{val=0,vaal[[deprecated]]=val};voidtest(){MyEnume=MyEnum::vaal;//ShouldemitWarning,butdoesnotMyEnume2=MyEnum::val;//NoWarning

c++ - Xcode 6 的 Playground 功能适用于 Visual Studio 或其他使用 C++ 的 IDE?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。ImprovethisquestionApple如何将这个playground功能引入Swift和Xcode,您可以在编程时看到结果,这让我着迷。是否有适用于VisualStudio的插件/扩展程序,或为C++执行相同类型功能的不同IDE?提前致谢!

c++ - 有没有办法在 Visual C++ 调试后返回以前的状态?

所以当我想向前移动时,我可以使用f10/f11但我可以移动到之前的状态吗?不仅仅是之前的位置,因为如果我只是将光标移动或设置到之前的位置,这不会恢复变量的值。这不可能? 最佳答案 如果您愿意使用不同的调试器,您可以做到这一点。广发局supportsthisfeature.将GDB与MSVS结合使用留给读者和Google作为练习,但这里有一些有用的链接:HowcanIuseGDBfrominsideVisualStudioC++(Express)todebugmyGCCMakefileprojects?https://visualst

c++ - 从 Visual Studio 2008 升级到 Visual Studio 2013 时二进制大小增加 30%

我必须用多个项目维护一个庞大的旧代码库(不是我写的),其中大部分是C++语言。我的第一步是将代码库从VS2008升级到VS2013。两种解决方案都设置为针对大小进行优化(在发布版本中)。然而,二进制文件的大小现在增加了大约30%,几乎在所有二进制文件中都是如此——我很难解释这一点。这些项目大量使用ATL,而且我知道ATL9已移至静态库,但我怀疑这能否解释所有大小差异。任何想法:大小差异的解释是什么?由于这种尺寸变化,VS12是否更安全或具有更好的性能(寻找销售此开关的“关键点”)。寻找减少二进制文件大小的方法,从容易实现的目标开始,到更精细的工作。 最佳答案

c++ - Visual Studio 2015 代码分析 C6386 缓冲区溢出警告

我已经阅读了很多关于VisualStudioCodeAnalysis警告C6386的信息,但我无法用我的代码找出这个特定问题。我已将其简化为以下小程序:unsignedintnNumItems=0;intmain(){int*nWords=nullptr;unsignedintnTotal;nTotal=3+2*nNumItems;nWords=newint[nTotal];nWords[0]=1;nWords[1]=2;//thisisline18,warningC6386delete[]nWords;return0;}Analyze->RunCodeAnalysis->OnSolu