问题标签 [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 回答
3472 浏览

c++ - Visual C++ 2017 Redistributable package 能否支持使用 VC2015 的应用程序?

如果我在我的机器上只安装Visual C++ 2017 Redistributable ,它能否支持为2015年编写的应用程序

换句话说,如果我卸载Visual C++ 2015 Redistributable并安装Visual C++ 2017 Redistributable,所有应用程序都可以正常工作吗?

0 投票
4 回答
33114 浏览

visual-c++ - 如何检测是否安装了 Visual C++ 2017 Redistributable

随着 Microsoft 在其最新版本中更改注册表项的模式,我如何检测机器上是否安装了 Visual C++ 2017 Redistributable?

我的目标是安装 VC++2015Redist,因为该软件是使用 VS2015 编写的。如果我可以在机器上成功检测到 VC++2017Redist,那么我会跳过安装 VC++2015Redist

0 投票
0 回答
1208 浏览

visual-c++ - 使用次要版本检查 Visual C++ Redistributable 2017 vs 2015

我们的应用程序通过使用(对于 2010 版本)查看 Installed Registy 密钥来检查 Visual C++ 可再发行组件的已安装版本:

我需要扩展对 Visual C++ redistributable 2017 的检查,并且我需要能够将它与 2015 版本区分开来。但是,这两个版本都在 ...\VisualStudio\14.0\VC\... 下,所以我需要更改要检查的键。

我想我可以查看提供已安装可再发行组件的次要版本的次要密钥。但我没有详尽的清单列出哪个次要版本属于 2015/2017 年。我知道次要版本 0 是 2015 年,11 是 2017 年,但我不知道是否有更多次要版本发布。如果有,我想知道哪个次要版本是 2015 年和 2017 年之间的“截止”。

0 投票
3 回答
132 浏览

c++ - 将 std 字符串转换为 char* 的方法的差异

我知道关于如何将 std::string 转换为 char* 有很多问题,并且通过我的研究,我采用了一些不同的选项。但是,似乎唯一对我有用的是 c_str() 方法中的 const_cast 。

所以我现在正在使用它,但想了解更多关于为什么其他方法不起作用的信息。关于为什么这不能按预期工作,这似乎对许多其他人有效,我在理解中缺少什么。

我知道使用 const_cast 的陷阱,但它目前适用于我的情况。我只是从用户那里获取字符串,将它传递给 C API,然后什么都不做(不用担心它会被修改)。

这是输出示例 https://imgur.com/a/2S1HD

那么我做错了什么,有没有更好的方法来做到这一点?


更新 感谢大家提供极快的答案。似乎我的潜在困惑是假设空终止字符不在我分配给 char* 变量的新缓冲区中。因此,为什么我的输出在字符串之后显示随机字符(这应该是我的线索,但自从我完成 C/C++ 以来已经很久了)

我也应该最初标记这个 C++17(因为已修复),因为这就是我的目标。我没有在 Visual Studio 的控制台应用程序中启用该功能,这使得 Passer By 下面的解决方案起作用。这就是我今后将使用的方法。

底线,将我的目标更改为 C++17,这可以按预期工作

0 投票
1 回答
217 浏览

c++ - C2663:“std::_Tree>::insert”:5 个重载对“this”指针没有合法转换

C2663:“std::_Tree>::insert”:5 个重载对“this”指针没有合法转换。

i.second被编译器认为是const合格的,因此禁止插入。

如果它不是错误,我该如何操作它?

0 投票
4 回答
296 浏览

c - 将指针设置为堆栈内存块?

我想创建一个指向堆栈内存块的指针。我不想复制内容,只是有一个指向它的指针。我该怎么做?

这是我试过的...


0 投票
0 回答
86 浏览

sockets - 可以让计算机充当CLIENT,但不能充当SERVER?

我正在运行代码:计算机 A 上的服务器和计算机 B 上的客户端。但是,当我让它们切换位置时:计算机A上的客户端和计算机B上的服务器...没有建立连接并且超时。在客户端上,我确实将 IP 地址更改为正确的机器:computerB。

你们需要什么信息来了解更多问题...让我知道...谢谢


编辑:所以这里是防火墙:防御者:我允许我的应用程序(client1)完全访问......但在反向运行或交换时仍然没有。

在此处输入图像描述


更新:我们现在添加了 computerC ... computerC 与 computerA 一起作为客户端或服务器工作。但它也不能作为computerB 的客户端。作为计算机B的服务器工作。所以问题是计算机B!!!我没有运行防火墙。???...尝试重新启动...但没有任何变化。禁用所有防火墙。

0 投票
0 回答
60 浏览

c++ - 带有 codecvt 的代码无法链接

使用最新的 Visual Studio 社区预览版(15.6.0 预览版 2),以下代码无法链接:

错误是:

我听说这可能是由于 Visual C++ 错误。任何人都可以提出解决方法吗?

0 投票
2 回答
4932 浏览

msbuild - Microsoft.Build.CPPTasks.Common 找不到 Microsoft.Build.Tasks.Core

我刚刚将一个项目从 Visual C++ 2012 升级到 Visual C++ 2017,我从 MSBuild 中遇到了构建失败:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Current.targets(64,5):错误 MSB4062:无法加载“SetEnv”任务从程序集 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.Build.CppTasks.Common.dll。无法加载文件或程序集“Microsoft.Build.Utilities.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。[C:\src\my-project.vcxproj]

Fusion 日志显示了不好的情况:

刚刚在Visual Studio Community上发布了这个,但在另一个几乎相同的错误报告中,由于我无法理解的原因,他们将其关闭为“不是错误”。我希望 StackOverflow 会更有帮助。:)

0 投票
1 回答
727 浏览

c++ - 在 C++ 中创建类并使用构造函数(赋值)

对于作业,我必须创建一个包含电影名称、MPAA 评级、从 1 到 5 评级的人数、找到每个评级的累积值和平均值的电影类。

我主要在构造函数和类方面遇到问题。我试图让它接受一个字符串(我得到了那部分有点正确)。我在第 77 行和第 83 行遇到了一些错误。我也被卡住了,因为我不知道下一步应该采取什么步骤。我将不胜感激任何可能的帮助。

这是我到目前为止得到的:

谢谢你。