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

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 回答
746 浏览

c++ - 如何将 DWORD 值转换为 void* 值?

给定这些typedefs 和下面的值:

如何转换它以满足 C++ 中该设备 SDK 功能的需求?

示例中的 C 参考代码为:

我在下面尝试过,但这很奇怪。它编译好,整天都在工作,而且幸运的是,它开始突然抛出访问违规:

我做错了什么?

0 投票
1 回答
141 浏览

c++11 - MSVC2013 和带有 std::thread 编译错误的可变参数模板方法

我有一个带有以下方法的线程管理器类:

在另一堂课中,我正在尝试使用它。这个类有以下成员:

我收到编译错误(MS VC2013):

它指向这行代码:

难道我做错了什么?或者它是编译器错误?在这里可以做什么?...

0 投票
1 回答
83 浏览

c++11 - 可变模板和完美转发到特定模板类

我想在我的“myArgs 类”中实现一个完美的转发构造函数,它应该只涉及myClassBase<>. 粗略地说:为每个变体调用此构造函数myClassBase<>

但它不会编译:'<function-style-cast>' : cannot convert from 'myClass' to 'myArgs'.

我认为这是因为编译器无法推断出Args&&to myClassBase<T, D>

请参阅这个(非常基本的)示例:

测试东西:

如果我将 var_args 函数参数从更改void var_args(Args&&... args)void var_args(Args... args)它可以工作。

顺便提一句。在我的真实代码中,myClass 当然支持移动语义。

提前致谢。基督教。

0 投票
1 回答
146 浏览

c++ - 罪没有给出正确的值


当我输入值为 90 的变量 a 时,它给了我 0.893997 当我将变量设为 int 或 float 时,它给出了相同的值

0 投票
2 回答
89 浏览

c++ - 如何通过更改 Visual c++ 组合框中的选项来添加或删除文本框?

我想知道是否可以通过更改组合框中的选项来添加文本框或标签。例如,我在 Combobox 中有 2 个选项。如果我选择 #1,它必须显示 2 个文本框,但如果我选择 #2,它必须显示 3 个文本框。我可以在 Visual Studio C++ 中做这样的事情吗?

0 投票
1 回答
1511 浏览

c++11 - std::condition_variable wait_until 出人意料的行为

使用 VS2013 构建,指定time_point::max()条件变量的wait_until结果会立即超时。

这似乎不直观——我天真地期望time_point::max()无限期地等待(或至少等待长时间)。任何人都可以确认这是否记录在案、预期的行为或特定于 MSVC 的东西?

下面的示例程序;注意替换time_point::max()now + std::chrono::hours(1)预期的行为(wait_for一旦通知 cv 就退出,没有超时)

0 投票
0 回答
106 浏览

visual-studio - 我按 F5 或 CTRL + F5 后 Visual C++ Win32 需要很长时间才能开始调试

我在 Windows 10 上使用 Visual Studio 2013 专业更新 5。我编写了一个简单的 Hello World 程序,如下所示。

当我为 Win32(调试或发布)重建此代码,然后在不调试的情况下运行它(CTRL + F5)时,会出现控制台,但在“Hellow World”出现之前大约需要 10 到 15 秒。如果我再次运行代码而不重新构建,则会立即出现带有“Hello World”的控制台。这只发生在我将平台设置为“Win32”时,而配置可能是“调试”或“发布”。

在将平台设置为“x64”时一切正常。也就是说,带有“Hello World”的控制台会立即出现在“Debug”和“Release”中。

这个问题非常令人沮丧,因此我们将不胜感激任何形式的帮助。

0 投票
1 回答
85 浏览

visual-c++-2013 - 如何在 Visual C++ 中使用事件处理程序动态创建按钮?

我有这个:

但它说委托构造函数需要 2 个参数。怎么了?

0 投票
0 回答
637 浏览

avx - MSVC 2013:如何正确启用 AVX2?

我试图通过打开 /arch:AVX2 为特定软件获取更快的二进制文件,因为我在应该支持该指令集(i7 4770 和 i7 4800MQ)的 CPU 上运行它。
但是,这样做会产生一个可执行文件,该可执行文件会崩溃并显示“xxx.exe 已停止工作”消息,就好像我在非 AVX2 硬件上运行它一样。
我知道通过运行 y-cruncher 在我的系统上正确支持 AVX2,它检测 AVX2 硬件并运行相应的可执行文件。
如果我指定 /arch:AVX,也会出现同样的问题。
代码在没有 /arch 选项的情况下正常运行。其他使用的构建选项是:

该软件本身不使用特定的 AVX2 内在函数,因为它旨在在更广泛的平台上运行。我只是想在我的平台上获得更好的性能,而不更改代码(我什至无法做到,因为这是一个复杂的软件,我根本不是专业程序员)。

我的问题是:为什么该选项会使程序在支持 AVX2 的机器上崩溃?我是否遗漏了阻止 /arch:AVX2 正常工作的东西,例如与其他标志不兼容?(我检查了 MS 文档,没有发现任何与 AVX2 相关的“交叉依赖”)。

编辑:我在这里添加了更多关于代码的信息,正如 Regis Portalez 所建议的那样。这是导致问题的代码片段。VS 调试器在指示访问冲突的最后一行之前停止:

以下是最后一行的汇编代码:

调试器指示访问冲突发生在vbroadcastss。寄存器内容如下,说明有读取位置0的尝试:

作为比较,当 /arch:AVX2 不使用时,这是程序集:

访问冲突中涉及的对象定义为:

我希望这些信息可以允许更多的分析......

0 投票
1 回答
697 浏览

c++ - 如何在 Visual C++ 中使用 File::ReadAllBytes?

Visual Studio 有一个简单的方法“File::ReadAllBytes”,它将读取文件并返回一个字节数组,但我不知道如何使用它。我尝试了以下方法,但它们都不起作用。