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

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 投票
1 回答
10506 浏览

c++ - 如何将 Qt 库添加到 Visual Studio

我有一个 VC++ 2017 的源代码 当我尝试编译项目时收到错误“错误 C1083 无法打开包含文件:'QtCore/QMap':没有这样的文件或目录”。我下载 Qt 库并添加到 Include 项目,但问题存在。我必须将 Qt 的哪个目录添加到项目中才能解决错误?

这是我生成错误的代码的标题

0 投票
0 回答
38 浏览

c++ - 如何通过windows form c++中的另一个表单关闭表单?

我想通过单击另一个表单中的按钮来关闭一个表单。

我要关闭的表单是BreakEndOptions.h,要点击的按钮是表单Confirmation.h

我已经包含BreakEndOptions.hConfirmation.h. 您如何访问它并执行Close()?或者还有其他方法吗?

目前我试过BreakEndOptions::Close();但有一个错误说非静态成员引用必须相对于特定对象。

我也试过

但它仍然有错误。正确的方法是什么?

0 投票
1 回答
578 浏览

visual-studio - VS 2017 编译的 exe 不在 Windows 7 上运行

我已经在 Windows 7 机器上安装了 VS 2017 并构建了针对 8.1 SDK 的 C++ 项目,但二进制文件没有在 Windows 7 上启动。同样适用于 Windows Server 2016 和 Windows 10 操作系统。

我已经检查了 VC 2015 运行时是否安装在 Windows 服务器和 Windows 7 机器上。并且 Windows 8.1 SDK(作为 VS 2015 的一部分?)安装在我在 Windows 7 上运行的本地计算机上。以前,我安装了 Visual Studio 2015,并且二进制文件在 Windows 7 和 Windows 服务器上都可以正常工作。

我不确定 windows\system32 中的运行时 dll 是否由于 VS 2017 安装而损坏或更改。

PS:我注意到在运行新安装的带有 C-runtime dll 打包的 firefox 时,exe 无法启动的相同问题。

0 投票
1 回答
129 浏览

visual-c++ - 在 Visual C++ 中,如何将一个类移动到它自己的文件中?

我在一个文件和另一个类中有多个类。我需要拉出其中一个类并放入它自己的文件中。我尝试右键单击:“添加类”选项...但得到错误“类'xxx'无效或已在所选源文件中实现。” 如果我尝试使用不同的名称,它会起作用……但我需要和以前一样的名称。

0 投票
1 回答
684 浏览

visual-c++ - MSVC2017 编译器错误,Chromium 构建失败

所以我在:

  • 视窗 10
  • MS Visual Studio 2017(2017 构建工具)

试图建立:

  • qt5.10.1QtWebEngine
  • 使用jom.exe -j4

QtWebEngine构建过程中,发生了这种情况:

我发现这个论坛有一个稍微活跃/最近的问题,在这里询问同样的问题:

从这一点上我能做些什么来解决这个问题吗?

0 投票
1 回答
816 浏览

c++ - 非类型参数类型的 C++ 模板特化

具有因非类型成员的类型而不同的相同模板函数的变体是否有效?

目的是能够调用

clang 和 gcc 保持沉默,但 MSVC 报告

我想避免要求指定常量类型:

并希望确保常量值和目标值匹配。

---- 麦克维 ----

Rextester 示例:http ://rextester.com/VIGNP16100

0 投票
1 回答
776 浏览

c++ - 配置 Visual Studio 2017 以使用现有的 Android SDK 和 NDK 组件

我通过安装 Visual C++ Android 工具、Apache ANT 并配置现有 SDK、NDK 和 JDK 位置的位置,将 Visual Studio 2017 设置为与 Android NDK 一起使用。

我已经安装了 LLDB,配置了clang.exe位置并包含了 /ndk-bundle/sources 中的所有头文件。

我正在尝试构建默认的 Android Native Activity 项目。可以在此处找到旧版本:https ://msdn.microsoft.com/en-us/library/dn707595.aspx

但我仍然收到很多错误,所有的#includes下划线。当我尝试构建解决方案时,出现以下错误。

严重性代码描述项目文件行抑制状态错误TRK0002 无法执行命令:“C:\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe @C:\Users\Saminda\ AppData\Local\Temp\tmpcecf4937c8a14139b9405a2aae30e2e6.rsp”。句柄无效。NDKSample.NativeActivity C:\Users\Saminda\source\repos\NDKSample\NDKSample\NDKSample.NativeActivity\TRACKER 1

任何帮助,将不胜感激。

0 投票
1 回答
303 浏览

debugging - MSVC 显示“没有可用的反汇编”。对于任何从 MSVC 编译出来的东西

使用 MSVC 2017 我正在使用 Attach 来处理我使用 MSVC 或 CLANG 从控制台进行的编译(我正在编译编译器生成的 asm 代码)。每当我破坏程序时,我只会得到“没有可用的反汇编”。我知道它不能显示 C++ 代码,它没有任何符号,但 asm 代码应该不是问题,对吧?有任何想法吗?

编辑:我没有做任何混淆或任何事情。这是一个非常简单的“几行”程序,我正在对其进行测试。

Edit2:如果我放置 __asm { int 3 }; 并设法足够快地连接调试器,中断停止调试器,我可以查看反汇编。

0 投票
2 回答
2794 浏览

visual-studio-2017 - 如何防止 vc_redist.x##.exe (VS2017) 由于挂起的重新启动而出现模棱两可的失败?

TL;DRvc_redist在多个安装程序链中调用 VS 2017 时,自动调用 VS 2017 的明智方法是什么?


MS 为 VS 15.x(VS 2017)提供的Visual C++ Redistributable Installer ,即两者(14.15.26706 - VS 15.8.4)):

  • vc_redist.x86.exe
  • vc_redist.x64.exe

作为我们完整产品安装的一部分,我必须静默运行几个vcredist 安装程序(也是旧版本)。

现在的问题是,如果重新启动未决(例如) ,这些安装程序将拒绝安装"HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" - PendingFileRenameOperations

当使用 调用这些安装程序时vc_redist /q,它们甚至会立即触发系统重启。这可以通过调用它们来解决/q /norestart,但是:

调用时,如果在此安装程序之前vc_redist /q /norestart重启等待,它将返回 MSI 退出代码,指示需要重启。3010

但是,AFAIK,此退出代码表明,此设置需要重新启动才能完成。

实际问题

因此,我无法区分此安装程序是否成功并且只需要在我的安装序列的最后重新启动(我确实在之前和之后安装了 otehr 东西) -或者安装程序是否实际上拒绝执行任何操作并且我需要重新启动系统并再次启动此安装程序!

如何在不同的第三方安装程序链中调用此 vc_redist 和

  • 理想情况下,最后只需要重新启动一次
  • 至少,确定它是否安装成功。

一些额外的信息,fwiw:

不确定这些对问题有帮助,但为了完整起见。

  • 安装程序 GUI 清楚地指示正在发生的事情:(抱歉,德语 Windows)

弹出框

“没有采取任何行动,因为需要重新启动系统。”

摘要/关闭/重启

  • 这是我们的“产品套件”的 InnoSetup 内置安装程序,将供客户使用,安装顺序如下:

    1. 运行 MSVC 2005 (VC8) 32 位 vcredist
    2. 运行 MSVC 2010 (VC10) 32 位 vcredist
    3. 运行 MSVC 2017 (VC141) 64 位 vcredist
    4. 运行 MSVC 2017 (VC141) 32 位 vcredist
    5. 运行其他一些第三方依赖/库安装程序
    6. 安装实际的应用程序文件(通过 InnoSetup)
    7. 重新启动(询问)是否有任何安装程序指示需要重新启动。

正如你从这个序列中看到的那样,每次 vcredist 之后重新启动都会很疯狂,幸运的是,到目前为止,似乎只有 2017 年的 redist 表现出这种不幸的行为。

注意:我的开发机器上运行的试用版都是从“步骤 0”处已经挂起的重新启动开始的,即使重新启动在手之前等待重新启动,VC2005 和 VC2010 安装程序都运行良好(通过它们的 GUI 进度验证。如果重新启动未决,则 VC2017 安装程序拒绝执行任何操作。

0 投票
1 回答
196 浏览

c++ - MSVC 将仅移动结构参数解释为指针

我有一个简单的单成员结构,其中删除了复制构造/分配和默认移动构造/分配。我试图通过值将这些结构之一传递给函数并返回成员 - 非常简单。

问题是当用 MSVC 编译时,这个函数会崩溃。

查看反汇编,似乎当复制构造函数被删除时,MSVC 尝试解释x为好像它是 aNoCopy*并且随后的成员读取导致分段错误。

这是一个godbolt示例,gcc和clang供参考:https ://godbolt.org/z/jG7kIw

请注意,gcc 和 clang 的行为都符合预期。另请注意,这在优化和未优化的版本中都会发生,并且似乎会影响 MSVC 2015 和 2017。

作为参考,我正在使用 Visual Studio Professional 2015(14.0.25431.01 更新 3)在我的机器上编译 - 我主要测试 x64 版本。我的崩溃重现平台工具集设置为 v140。

所以我的问题是:对此是否有任何合理的解释,或者我是否正在查看编译器错误。

编辑:我在这里提交了一个错误报告

编辑#2:如果像我一样,您遇到了类似的问题并且无法轻松更新 VS -手动定义移动构造函数/赋值运算符而不是使用似乎= default会导致 MSVC 在调用站点吐出正确的代码并避免迷恋;撞车;崩溃。这是一个新的神螺栓

出于这个原因,像 std::unique_ptr 这样的东西似乎没有受到影响。结构大小似乎也是一个因素。