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

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

c++ - 类外的成员模板函数定义无法构建 Visual Studio 2013

我已经粘贴了我正在处理的一段复杂模板代码的最低限度。

代码很简单,所以我不会解释任何东西。我无法使用 Visual Studio 2013(又名 VC++12)编译此代码。它给出了以下错误:

出于好奇,我尝试用 g++ (4.4.7) 编译上面的代码,它编译得很好。

如果有人可以解释为什么代码无法在 Windows 上编译,我将不胜感激?修复会更甜蜜。:)

0 投票
0 回答
140 浏览

visual-studio-2012 - 从链接器命令中删除了某些 lib 文件?

我正在尝试在一个大型项目(BCI2000)的扩展中使用部分 OpenCV 套件。虽然我已经成功编译并执行了 OpenCV 测试程序,但在主程序中链接 OpenCV 函数时,链接失败并显示 LNK2019: unresolved external symbol。在最顶部的属性页面中,在项目属性管理器中,显示以下命令行:

/OUT:"D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.exe" /MANIFEST /NXCOMPAT /PDB:"D:\Users\Admin\ Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.pdb" /DYNAMICBASE "opencv_calib3d2410.lib" "opencv_contrib2410.lib" "opencv_core2410.lib" "opencv_features2d2410.lib" "opencv_flann2410.lib ” “opencv_gpu2410.lib” “opencv_highgui2410.lib” “opencv_imgproc2410.lib” “opencv_legacy2410.lib” “opencv_ml2410.lib” “opencv_nonfree2410.lib” “opencv_objdetect2410.lib” “opencv_ocl2410.lib” “opencv_photo2410.lib” “opencv1_stitching24 " "opencv_superres2410.lib" "opencv_ts2410.lib" "opencv_video2410.lib" "opencv_videostab2410.lib" /MACHINE:X86 /SAFESEH /PGD:"D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\ custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH: "D:\lib\opencv\build\x86\vc11\lib" /TLBID:1/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH:"D:\lib\opencv\build\ x86\vc11\lib" /TLBID:1/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"OpenCVTestSPModule.dir\Release\OpenCVTestSPModule.exe.intermediate.manifest" /ERRORREPORT:PROMPT /LIBPATH:"D:\lib\opencv\build\ x86\vc11\lib" /TLBID:1

同时,在 Build Output 框中,执行的链接命令确认已经包含了额外的 OpenCV LIBPATH:s,但是所有的 OpenCV .lib-files 都丢失了,自然会导致这个错误。

"/OUT:D:\Users\Admin\Documents\Visual Studio 2012\Projects\bci2k\build\CMakeFiles\custom\OpenCVTestSPModule\Release\OpenCVTestSPModule.exe" /INCREMENTAL:NO /LIBPATH:D:\lib\opencv\build \x86\vc11\lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib ws2_32.lib ....\frameworks\LibTiny\Release\ LibTiny.lib ....\frameworks\CoreLib\Release\BCI2000FrameworkCore.lib ws2_32.lib ....\frameworks\SigProcModuleLib\Release\BCI2000FrameworkSigProcModule.lib ....\frameworks\CoreLib\Release\BCI2000FrameworkCore.lib .. ..\frameworks\LibTiny\Release\LibTiny.lib ws2_32.lib winmm.lib /NODEFAULTLIB:msvcrt /NODEFAULTLIB:msvcrtd /NODEFAULTLIB:msvcprt /NODEFAULTLIB:msvcprtd /MANIFEST "/MANIFESTUAC:level='asInvoker' uiAccess='false' " /manifest:embed "/PDB:D:/Users/Admin/Documents/Visual Studio 2012/Projects/bci2k/build/CMakeFiles/custom/OpenCVTestSPModule/Release/OpenCVTestSPModule.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT "/IMPLIB:D:/Users/ Admin/Documents/Visual Studio 2012/Projects/bci2k/build/CMakeFiles/custom/OpenCVTestSPModule/Release/OpenCVTestSPModule.lib" /MACHINE:X86 /SAFESEH /machine:X86 /include:_SigProcRegistry OpenCVTestSPModule.dir\Release\PipeDefinition.obj目录\发布\PipeDefinition.obj目录\发布\PipeDefinition.obj

“Additional Include Directories”和“Additional Dependencies”在同一个Property Sheet中,所以很明显这个property sheet是在编译时读取的。有谁知道可能导致此问题的原因?目标是Win32(Release),IDE是VS2012。

可能相关:在属性管理器中,存在一个名为“Microsoft.Cpp.Win32.user”的属性表。如果尝试将其向上移动(稍后在评估中),则会出现错误(“在文件中带有标签“PropertySheets”和(条件)的导入组(路径项目)”)显示。

可以在测试程序中重新排列属性表的优先级而不会出现问题。

0 投票
1 回答
427 浏览

c++ - 是否可以用汇编语言编写 dllexport(然后是 dllimport)函数?

我有大型 C++ 项目,包含几个模块 - 所有模块都编译为动态库。我面向多个平台,包括 Windows、Linux 和 MacOSX。

分析测试揭示了一些关键点,在这些点我能够获得巨大的性能提升,例如:哈希计算、一些向量操作等。我使用 SSE/MMX 在汇编中实现了这个功能。

一切都很好,直到我切换回 Visual C++ 中的 x64 目标,其中不允许内联汇编。我被困住了。此外,这些功能也用于其他模块。

基本上,我想要实现的是实现一些函数,这些函数驻留在程序集中的 DLL 中。我试过这个:

api.h

api.asm

由于名称修改,这显然行不通。

我也试过这个:

api.h

api.cpp

api.asm

在这种情况下,我仍然收到有关未解析的外部符号 (sample_fun_impl) 的链接器错误,这很奇怪,因为它实际上是一个私有函数,只能从 DLL 中调用。

有可能做我想做的事吗?

0 投票
1 回答
1734 浏览

.net - Visual Studio 2013 中的 VC++ 2012 运行时引导程序包在哪里?

我有一个通过 ClickOnce 部署的 .NET 4.5.2 应用程序。它使用Magick.NET库,它需要 Visual C++ Redistributable for Visual Studio 2012。我已经尝试使用 2013 包,但它仍然需要 2012 版本才能工作。不幸的是,Visual Studio 2013 中可能的先决条件下列出的唯一版本是 2013 版本。其他版本找不到了:

Visual Studio 2013 ClickOnce 先决条件窗口

如何在 Visual Studio 2013中将 Visual C++ 2012运行时库包含在 ClickOnce 应用程序中?

编辑:对于另一个版本的 Visual Studio似乎有一个非常相似的问题,但很少受到关注。

0 投票
4 回答
103 浏览

c++ - 为什么我不能在 C++ 中一次初始化 3 个默认参数

上面的代码工作正常,但是当我尝试使用 3 个默认参数时

我收到以下错误 -

main.cpp(12):错误 C2668:“Complex::Complex”:对
重载函数 complex.h(15) 的模糊调用:可能是“Complex::Complex(float,float,float)”complex.h(12) : 或“复杂::复杂(无效)”

0 投票
0 回答
343 浏览

visual-studio-2012 - BITMAPFILEHEADER 和 BITMAPINFOHEADER 无法识别

我有一个 Win32 构建的 Visual Studio 2012 构建的 vcxproj 项目。代码在header中有一个bitmap header结构union的定义。联合定义设置在应用程序的标头中。问题是标头无法识别 BITMAPFILEHEADER 和 BITMAPINFOHEADER。我添加了#include WinGDI.h 和 Windows.h,但仍然无法识别。

我试图更改 C/C++ 预处理器定义并添加了以下代码,但它仍然不起作用

我需要什么设置才能让编译器知道定义?

PS。根据@RetiredNinja 的评论,我收到的错误是 bmf 和 bmi 的 C2079。

0 投票
1 回答
31 浏览

mixed-mode - 在 C# .NET 应用程序中通过 CLI Wrapper 使用 Win32 时进入断点

我有以下解决方案结构:项目文件

当我使用以下结构访问 Win32 时:

我可以调试 WinForm 和 CLI Wrapper,但不能调试 Win32 DLL。我只能通过 MFC 测试器对 Win32 DLL 进行单元测试。如果从 WinForm GUI 而不是 MFC GUI 运行,有没有办法无缝调试直到 Win32 DLL?

我尝试了以下方法:

使用 VS2010 在混合 C# C(win32) 项目中未加载符号

你有其他想法吗?甚至可能吗?

0 投票
2 回答
2471 浏览

visual-c++-2012 - 即使包含 cmath,在 Win32 C++ 项目中也找不到 round 函数

我创建了一个空白的 Win32 C++ 项目。即使我包含了 math.h 或 cmath 库,编译器也会继续为 round 函数提供 C3861 未定义错误。

我试过以下

0 投票
1 回答
529 浏览

visual-studio - 在 VS 2012 中调用 CoCreateInstance 期间符号加载缓慢

在我的 MFC 项目中,我CoCreateInstance有时会调用:

稍后,一旦我完成了DragDropHelper我的电话Release

到目前为止一切顺利,一切正常。

但是在调试过程中,第一次调用它CoCreateInstance非常慢,因为 VS 正在加载大量符号(此加载在 VS 输出窗口中可见,见下文)。随后对相同的调用CoCreateInstance很快。但是当我重新启动调试器时,第一次调用它又CoCreateInstance慢了。

我不需要这些符号来达到我的目的。

有没有办法阻止 Visual Studio 加载所有这些符号。

调试时输出窗口的部分内容

0 投票
1 回答
1800 浏览

c++ - Visual C++ 中的 CreateWindow() 总是返回 null

这是我的代码,在 WinMain 入口点我注册了一个类并尝试创建一个窗口,但 CreateWindow() 函数总是返回 NULL。但是 RegisterClass() 函数确实成功了。我做错了什么?