问题标签 [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.
c++ - 类外的成员模板函数定义无法构建 Visual Studio 2013
我已经粘贴了我正在处理的一段复杂模板代码的最低限度。
代码很简单,所以我不会解释任何东西。我无法使用 Visual Studio 2013(又名 VC++12)编译此代码。它给出了以下错误:
出于好奇,我尝试用 g++ (4.4.7) 编译上面的代码,它编译得很好。
如果有人可以解释为什么代码无法在 Windows 上编译,我将不胜感激?修复会更甜蜜。:)
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”和(条件)的导入组(路径项目)”)显示。
可以在测试程序中重新排列属性表的优先级而不会出现问题。
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 中调用。
有可能做我想做的事吗?
.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中将 Visual C++ 2012运行时库包含在 ClickOnce 应用程序中?
编辑:对于另一个版本的 Visual Studio似乎有一个非常相似的问题,但很少受到关注。
c++ - 为什么我不能在 C++ 中一次初始化 3 个默认参数
上面的代码工作正常,但是当我尝试使用 3 个默认参数时
我收到以下错误 -
main.cpp(12):错误 C2668:“Complex::Complex”:对
重载函数 complex.h(15) 的模糊调用:可能是“Complex::Complex(float,float,float)”complex.h(12) : 或“复杂::复杂(无效)”
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。
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) 项目中未加载符号
你有其他想法吗?甚至可能吗?
visual-c++-2012 - 即使包含 cmath,在 Win32 C++ 项目中也找不到 round 函数
我创建了一个空白的 Win32 C++ 项目。即使我包含了 math.h 或 cmath 库,编译器也会继续为 round 函数提供 C3861 未定义错误。
我试过以下
visual-studio - 在 VS 2012 中调用 CoCreateInstance 期间符号加载缓慢
在我的 MFC 项目中,我CoCreateInstance
有时会调用:
稍后,一旦我完成了DragDropHelper
我的电话Release
:
到目前为止一切顺利,一切正常。
但是在调试过程中,第一次调用它CoCreateInstance
非常慢,因为 VS 正在加载大量符号(此加载在 VS 输出窗口中可见,见下文)。随后对相同的调用CoCreateInstance
很快。但是当我重新启动调试器时,第一次调用它又CoCreateInstance
慢了。
我不需要这些符号来达到我的目的。
有没有办法阻止 Visual Studio 加载所有这些符号。
调试时输出窗口的部分内容
c++ - Visual C++ 中的 CreateWindow() 总是返回 null
这是我的代码,在 WinMain 入口点我注册了一个类并尝试创建一个窗口,但 CreateWindow() 函数总是返回 NULL。但是 RegisterClass() 函数确实成功了。我做错了什么?