问题标签 [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.
visual-studio - Visual-C++-2017 二进制文件是否与 VC++-2015 兼容?
Steve 告诉我,VC 2015 和 VC 2017 实际上(将)是二进制兼容的。
我发现零信息。这在2017 (RC) 的发行说明中- 或者几乎任何地方,所以这里是:
- 使用VC++-2017二进制文件构建的 C++(C++ 接口)DLL 是否与VC ++-2015 构建的 DLL 兼容?
- 2017 和 2015 使用相同的(动态)运行时库吗?
- 如果是这样,Platform Toolset和? 之间的运行时差异是什么(如果有)?(*)
Visual Studio 2017 (v141)
Visual Studio 2015 (v140)
(*):是的,我实际上安装了 2017 RC,从表面上看,至少使用了相同的MSVCRT,即msvcp140.dll
和vcruntime140.dll
(尽管平台工具集被称为“v141”。
c++ - constexpr 错误;VS2017 C++ 编译器回归?
刚刚安装了 VS2017,它声称自 2015 年以来具有卓越的 C++14 支持(这是初级的)。试了一下我的一个使用constexpr
.
这段代码:
在 VS2015 和 Clang 上编译没有问题,但在 VS2017 中出现新错误:
这段代码看起来不错吧?是不是constexpr
有问题nullptr
?
我很惊讶这个基本的回归可能会出现,我怀疑我的代码一定有问题......
visual-c++-2017 - VS2017:“找不到资源编译器 DLL。请确保路径正确。”
我正在使用 Visual Studio 2017。当我尝试构建解决方案时,遇到此错误:
找不到资源编译器 DLL。请确保路径正确。
我检查了我的系统,发现我的机器上安装了 v7.0、v8.0、v8.0A、v8.1A 和 v10.0A SDK。我检查了我的项目属性,默认的 SDK 是 v8.0
c++ - 确保只有一个函数实例在运行?
我刚刚进入并发编程。很可能我的问题很常见,但由于我找不到它的好名字,所以我无法搜索它。
我有一个 C++ UWP 应用程序,我尝试在其中应用 MVVM 模式,但我猜该模式甚至是 UWP 都不相关。
首先,我有一个公开操作的服务接口:
当然,我提供了一个具体的实现,但与本次讨论无关。该操作可能会长时间运行:它发出一个 HTTP 请求。
然后我有一个使用该服务的类(同样,省略了不相关的细节):
我使用协程:
Refresh 函数每分钟在计时器上调用一次,或者响应用户请求。我想要的是:如果在启动或请求新操作时已经在进行刷新操作,则放弃第二个操作并等待第一个操作完成(或超时)。换句话说,我不想将所有对 Refresh 的调用排队——如果一个调用已经在进行中,我宁愿跳过一个调用,直到下一个计时器滴答作响。
我的尝试(可能非常天真)是:
在原始帖子之后编辑:我在上面的代码片段中注释掉了这一行,因为它没有区别。问题还是一样的。
但是当然断言失败了:unlock of unowned mutex
. 我猜这个问题是unlock
析构函数mutex
的unique_lock
,它发生在协程的延续和不同的线程上(除了它最初被锁定的线程)。
使用 Visual C++ 2017。
abi - VS2017 和 VS2015 之间的二进制兼容性
这篇 SO 帖子: Visual-C++-2017 二进制文件是否与 VC++-2015 兼容?明确表示 VS 2017 与 VS 2015 二进制兼容。它甚至看起来像官方的立场。
我的问题是,在过去,我清楚地记得每次尝试将使用不同版本的 MSVC 编译的静态库链接到 EXE 时遇到链接器错误(我不记得具体的错误集)使用更新版本的 MSVC 构建。
然而,二进制(不)兼容性听起来像是在运行时而不是链接时会在你面前爆炸的东西。
有人可以告诉我以前版本的 MSVC 是否确实在版本不匹配时产生了链接器错误?这是如何实现的?
编辑
这对打开 WPO/LTCG 构建的静态库有何影响?我相信这些会产生中间目标文件(而不是 COFF),并且微软不保证这些中间文件的格式在不同版本的编译器中保持不变。
c++ - 视觉工作室中的 std::experimental::source_location 实现
std::experimental::source_location
可以在 gcc 中使用__builtin_FILE()
、等实现合理一致的版本。Visual __builtin_LINE()
Studio 2017 中是否存在类似的内在函数?或者有什么方法可以std::experimental::source_location
在 Visual Studio 2017 中实现?
c++ - “boost_log_abi”:值“v2s_mt_nt6”与值“v2s_mt_nt5”不匹配
我正在将 C++ 控制台应用程序与 Boost 链接。一切都很好,直到我开始使用 Boost 日志库。我正面临这个问题:
boost_log_abi': value 'v2s_mt_nt6' doesn't match value 'v2s_mt_nt5
我尝试了这个问题的所有内容。但是,没有任何效果。
我什至无法理解到底是什么问题。哪个使用的是旧版本,我的程序还是 boost?
我使用的是 Windows 10、MSVC 2017(141 工具集)和 Boost 1.63。
linux - 在 jenkins 的 Visual Studio for Linux 项目上运行 devenv 时未定义的远程主机
我有一个 Visual Studio for Linux 项目。作为我自己,我可以从命令行使用devenv构建它。但是,当我尝试从 Jenkins 构建中运行相同的命令时,出现错误:
没有为远程构建配置远程机器。请使用工具选项/跨平台/Linux 配置机器。
这并不让我感到惊讶,因为 Jenkins 作业以 SYSTEM 身份运行,并且我的远程主机设置是在我的用户帐户下定义的。
我尝试将我的 AppData/Local/Microsoft/Linux 目录(包含远程主机设置)复制到系统本地 appdata 目录,但仍然找不到远程主机配置。知道如何解决吗?
visual-c++ - msvc 15.3.1 编译器问题
我在尝试使用 MS VC 15.3.1 编译一个简单的应用程序时发现了一个奇怪的行为(可能是一个问题)(在应用 VC 2017 升级 3 之后):
编译器发出错误:
此代码在 VC 15.2、VS2015 和 VS2013 工具集中编译时没有任何问题。