问题标签 [msvc12]

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 投票
0 回答
64 浏览

c++11 - visual studio 2013 std::bind with vector returns empty function

This code

http://ideone.com/LIjKCT

compiles fine by MSVC 2013, but when I run the program it prints

If I give the constructor for struct S (uncomment the tenth line) it prints four ok.

When I compiled this code (without constructor) by GCC, it printed four ok

Q: is there a bug in MS's compiler or I'm doing something wrong and I'm just "lucky" with GCC ?

P.S. My studio is "Microsoft Visual Studio Ultimate 2013". Version: "12.0.21005.1 REL"

0 投票
0 回答
975 浏览

c++ - CMake 使用 ExternalData 生成的 Visual Studio 2013 解决方案引发 MSB8031 错误

当我使用 CMake 添加测试目标时ExternalData,即

Visual Studio 2013 (MSVC 12) 抛出此构建错误:

我花了很长时间才把它缩小到这个范围。我很困惑,因为我在兄弟项目的另一个 CMake 文件中做了几乎完全相同的事情,加上实际的测试版本。似乎ExternalData_Add_Test正在向 CMake 构建的解决方案添加非 unicode 测试或其他内容。

我确实add_definitions(-DUNICODE -D_UNICODE)在父 CMake 文件中进行了设置。

更令人困惑的是,它构建在我的本地系统(以及所有非 MSVC 编译器)上,而不是在我们的 CI 构建系统上(......重要的地方。),即使环境是相同的。

0 投票
1 回答
130 浏览

c++ - 无法在 Boost.Python 中使用 __stdcall 编译示例

我正在尝试使用 Python 包装一个函数,但在Boost.Python使用__stdcall. 这是一个例子:

当我尝试编译时,我得到了 100 多个类似的错误,但前 2 个是:

错误 C2780: 'boost::mpl::vector10::type&,T0,T1,T2,T3,T4,T5,T6,T7> boost::python::detail::get_signature(RT (__thiscall ClassT::* ) (T0,T1,T2,T3,T4,T5,T6,T7) const,Target *)': 需要 2 个参数 - 提供 1 个 C:\boost\boost_1_62_0_python\boost\python\make_function.hpp 104

错误 C2780: 'boost::mpl::vector10::type&,T0,T1,T2,T3,T4,T5,T6,T7> boost::python::detail::get_signature(RT (__thiscall ClassT::* ) (T0,T1,T2,T3,T4,T5,T6,T7) volatile const,Target *)': 需要 2 个参数 - 提供 1 个 C:\boost\boost_1_62_0_python\boost\python\make_function.hpp 104

如您所见,我使用了此页面BOOST_PYTHON_ENABLE_STDCALL中提到的 define :

但是无论是否定义它,问题都保持不变。

有谁知道我做错了什么?

0 投票
4 回答
12486 浏览

build - 是否可以在 Windows 上构建 ffmpeg x64?

真正的答案可能是“不”,但仍然只是为了仔细检查。有没有人能够在 Windows(VS2013 或 VS2015)上构建 ffmpeg x64?我知道如果没有大量修改,公开可用的资源是不可能的。但是,如果有人这样做并且他愿意分享一些提示......

编辑:有趣的是,运行“配置”所需的大多数 x64 工具是如何在没有依赖关系的情况下分发的,并且不可能在任何地方获得它们。看起来像一个专业的拖钓。

Edit2:有成千上万这样的错误:

features.h 缺少许多其他头文件。有没有解决办法,或者切换到 Linux 是唯一的选择?

0 投票
1 回答
41 浏览

c++ - vs2015中的方法存在检查器代码中断

以下代码检查类 A 中是否存在 foo() 方法。此代码在 vs2013 下编译,但在 vs2015 上静态断言失败。哪个编译器版本说的是实话?如果是vs2015,那么如何修复代码?

0 投票
0 回答
258 浏览

c++ - 编译器将这个指针移动到错误的地址

我有一个简单的多态构造,只有一个纯虚函数Foo。它使用的大型项目中唯一的缺陷是该项目使用了几个全局静态来集中参数加载和事件记录(不能轻易摆脱遗留代码)。

项目信息:

  • 平台工具集:v110_xp
  • 静态库中的 MFC
  • MBCS 字符集
  • 调用约定:__cdecl
  • 禁用所有优化
  • 警告级别4,整个项目没有警告

代码:

调用代码(没关系,到处都是相同的行为)

问题是,当在调试中运行时(未通过发布测试),当我们最终进入 functionFoo时,this指针被“损坏”:

  • this = 0xcccccccc
  • this.__vfptr = <unable to read memory>

当我深入研究输入函数的汇编代码时,我看到以下内容:

第 17 行的断点,就在进入函数体之前:使用监视窗口检查寄存器后面的对象ecx(带有强制转换为Derived*)显示ecx包含我需要的指针(指向对象),但由于某种原因,它被mov'ed to看似随机的地址[esp+0F0h]

现在真正有趣/令人惊叹的部分:当我改变时

并再次编译,一切都神奇地工作。功能程序集现在已更改为:

现在生成的代码很好地将寄存器中的指针移动ecxthis. 其他区别:

  • 不同的内存地址/偏移量
  • mulsd而不是xorpd否定变量
  • and esp,0FFFFFFF8h消失(??用于对齐堆栈指针esp??)
  • 更多清理(在函数体之后)??( add cmp call)

对于这两种情况,参数被推送到堆栈的装配部分是相同的:

当然,当我尝试使用最小、完整和可验证的示例来复制它时,一切都按预期进行。但在我的大项目中,它一直失败。我不确定哪些参数会影响编译,并且对汇编了解得不够多,甚至看不到那里发生了什么;因此,我在这里问是希望有人以前见过或认识到这种行为。

注意:当我删除sqrt呼叫时,它也可以再次工作。


更新:

  • 发布没有问题
  • VS2012 SP4 (v11.0.61030.00)
  • 引用成员变量时问题仍然存在(iso 没有成员引用)
  • TODO:尝试不使用全局静态变量
0 投票
3 回答
2093 浏览

c++ - 无法将字符串文字分配给装箱的 std::string 向量

这是我的类型系统的简化版本:

虽然编译,a但没有,原因似乎是我尝试从. 这提出了两个问题:bcconst char

  1. 为什么b可能但不可能c?是因为嵌套的模板std::vector<Box<std::string> >吗?

  2. 我可以c在不破坏一般拳击机制的情况下工作(参见typedef Box<double> Double?

0 投票
0 回答
773 浏览

qt - Qt .executable 运行但 UI 不会显示

我有一个项目,我正在尝试为其生成可执行文件。起初我只是进入“build-myproject\release”文件夹并尝试运行 .exe 文件,但它要求一些 .dll 文件,所以我去了正确的编译器目录(C:\Qt\5.7\msvc2013\ bin 在我的情况下)来获取那些 dll 文件。 使用 dll 文件构建发布目录 现在,当我尝试运行可执行文件时,程序会运行(我可以在任务管理器中看到它) 任务管理器中的exe 但没有显示 Qml gui(我还在 main.qml 中设置了 visible: true )...我的程序在 QtCreator 中运行良好 在此处输入图像描述 但是当我运行可执行文件时没有任何反应。谁能帮帮我吗?谢谢你。

0 投票
0 回答
586 浏览

c++ - Windows10配置opencv_contrib时Cmake配置错误

我的 IDE 是 Visual Studio 2013,当我配置 opencv_contribute、CMake_GUI 输出时:

而我OPENCV_EXTRA_MODULES_PATH的是E:/opencv/OpenCV3/opencv_contrib-master/opencv_contrib-master/modules在此处输入图像描述

我应该怎么做才能正确配置编译设置?

0 投票
0 回答
595 浏览

c++ - msvc 中#pragma package(smart_init) 的等价物是什么?

embarcadero (Borland) C++ 编译器中,我们有以下 pragma 指令:

  • #pragma package(smart_init)
  • #pragma package(smart_init, weak)

如此处所述。

  • 在 msvc(Visual C++ 编译器)等效项中为上述功能定义的编译指示指令是什么?

    为了您方便,请看这里