问题标签 [vc10]

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 投票
2 回答
3696 浏览

c++ - 用 Boost.TR1 替换原生 VS 2010 (VC10) tr1 库

我一直在 std::tr1 命名空间中使用 VS 2005 (VC8) 和 Boost.TR1,方法是设置 VS 的 Include Directories 以优先考虑 boost tr1 标头,如此所述。

现在我转移到 VS 2010 (VC10),我似乎使用相同的包含方法得到编译错误。

包含目录设置为:

  1. [升压根]\boost\tr1\tr1
  2. [增强根]
  3. VC 标准包含目录

示例代码:

构建输出:

似乎它正在使用 VC10 的 tr1 标头而不是 boost。让 VS 使用 Boost.TR1 作为替代品的正确方法是什么?

0 投票
0 回答
305 浏览

com - VC10 ATL 控件教程在 VB6 中崩溃

自从我处理 VC ATL COM 控件以来已经有很长时间了。在 VB6 中使用时,我在将 VC6 ATL 控件升级到 VC10 时遇到问题。在进行故障排除的步骤中,我现在尝试按照 Microsoft 教程 [1] 创建一个 VC10 ATL 控件,然后将控件放置在 Visual Basic 6 中的窗体上。当控件放置在 VB6 IDE 中的 VB6 窗体上时,我得到一个错误:

系统错误 &H80004005 (-2147467259)。未指定的错误

我在VC6工具ActiveX控件测试容器中测试控件,控件显示绿色三角形,可以调用属性。

如何让 ATL 控件在 VB6 中工作?

  1. http://msdn.microsoft.com/en-us/library/599w5e7x.aspx
0 投票
1 回答
1749 浏览

runtime - vc10运行时安装的正确方法

我要为安装 VC10 运行时大发雷霆了!

我有两个应用程序,每个应用程序都有自己的安装程序。为了确保每个都可以独立发布,每个安装程序都包含 vcredist_x??.exe 东西来安装 VC10 运行时。

现在,其中一个安装程序包括“SP0”运行时——它是前一段时间构建的——称为“i0”,另一个安装程序包括“SP1”运行时——它正在构建中——称为“i1”。

如果我的用户单独安装 i0 或单独安装 i1,一切都很好。如果我的用户先安装 i0 然后安装 i1,一切都很好。

但是,如果我的用户首先安装 i1,那么当他尝试安装 i0 时,运行时安装会失败。

手动运行 redists 我看到 SP0 安装程序在看到 SP1 已安装时会感到不安。

除了这看起来几乎是愚蠢的事实之外,我该如何绕过它。我可以给 SP0 安装程序一些“强制”标志吗?是否有一些“正确”的方法来检查运行时 - 以及它的哪个版本 - 是否已经安装?

0 投票
1 回答
3163 浏览

boost - VS2010如何编译Boost 1.39?

我正在尝试将我们的 C++ 项目从 VS2005 升级到 VS2010,到目前为止一切似乎都很好,除了我需要在 VS2010 中重新编译我们的 Boost 库(v1.39)(即使用 vc100 - 我们拥有的版本是 vc80)。我(现阶段)不想升级 Boost,因为我宁愿先完成 VS2005 到 VS2010 的升级,而不同时进行 Boost 升级。

我遇到的问题是 Boost 1.39 带有 bjam,而我们拥有的版本不支持/不了解 msvc10.0。我试过这个:

C:\libs\boost_1_39_0> bjam 工具集=msvc-10.0 --build-type=完成阶段

但是,我明白了:

C:/libs/boost_1_39_0/tools/build/v2/tools\msvc.jam:733: 在配置中
*参数错误
* 规则 path.make ( native )
* 调用: ( )
* 缺少参数 native
C:/libs /boost_1_39_0/tools/build/v2/util\path.jam:44:参见规则“make”的定义被称为
C:/libs/boost_1_39_0/tools/build/v2/tools\msvc.jam:184:在配置
C :/libs/boost_1_39_0/tools/build/v2/tools\msvc.jam:137: 在 msvc.init
C:/libs/boost_1_39_0/tools/build/v2/build\toolset.jam:38: 在 toolset.using
C :/libs/boost_1_39_0/tools/build/v2\build-system.jam:465: 在 process-explicit-toolset-requests
C:/libs/boost_1_39_0/tools/build/v2\build-system.jam:545: 在加载
C:\libs\boost_1_39_0\tools\build\v2/kernel\modules.jam:283: 在导入
C:\libs\boost_1_39_0\tools\build\v2\kernel\bootstrap.jam:138: 在 boost-build
C: \libs\boost_1_39_0\boost-build.jam:16: 在模块范围
C:\libs\boost_1_39_0>

当我查看 msvc.jam 时,它似乎不支持 msvc-10.0(这并不奇怪,因为我怀疑 Boost 在 1.39 时 vc10.0 已经发布)。

所以做了一些研究,发现也许我需要b2而不是bjam,但是我对编译Boost的经验很少(之前只是使用预编译的库),所以我想问一下是否有可能得到b2可以工作使用 Boost 1.39?或者是否可以使 bjam 与 vc10.0 一起工作?

本质上,我只需要尽可能简单地用 vc-10.0 (VS2010) 编译 Boost 1.39!我将非常感谢任何能告诉我如何做到这一点的人!

先感谢您........ :)

0 投票
1 回答
3775 浏览

opencv - 如何在没有 CMake 的情况下在 opencv v2.4.4 和 VC10 中启用 CUDA 5.0 并解决错误“缺少 cudart32_42_9.dll”?

这是我的第一篇文章,如果我不清楚或未能完全遵守发帖规则,请接受我的歉意。无论如何,我已经为我自己的问题进行了广泛的准备。

与:

  • Windows 7 企业版 6.1.7600
  • Intel Xeon CPU 四核 3.07GHz
  • 英伟达 Quadro 4000 GPU
  • 适用于 Windows x64 构建的 CUDA v5.0 工具包
  • OpenCV v2.4.4
  • OpenCV Cuda Package 属于 opencv v2.4.4
  • Microsoft Visual Studios C++ 2010 Express ('vc10')
  • (!) 没有 CMake (!)

我已经完成的步骤、教程和检查:

  • 我已经按照 opencv.org 教程安装并配置了 opencv 2.4.4 所需的软件......
  • 使用 vc10,按照 opencv.org 关于在 vc10 中构建 opencv 的教程(应用那里描述的全局方法并将与 gpu 相关的 dll 放在顶部),但是
  • 在我尝试将计算转移到 GPU 之前,我还没有安装 CMake 软件,也没有任何需要它。
  • 此外,我已将我在此 vc10 解决方案中应用的所有 .dll 文件复制粘贴到“调试”文件夹中(与该解决方案的 .sln 文件位于同一文件夹中)。
  • 最后,我按照 NVidia 开发人员 Zone CUDA 5.0 Getting Started Guide 直到“验证安装”段落,并取得了成功,并按照“为现有项目的构建自定义”说明配置了构建配置以包括 CUDA 编译。

这个问题是关于尝试加速我在调试模式下制作的win32控制台.cpp(即使用win32 OpenCV库的视觉工作室解决方案,一个相当简单的图像处理项目,但带有大内核的模糊正在占用很多时间)通过让它在GPU上运行。但是,我在使用 cuda 5.0 运行 opencv 时遇到了问题(即使 OpenCV Cuda Package 的 readme.txt告诉我下载并安装 Cuda 5.0)。

在 vc10 中编译和运行(=按 F5,使用 Win32 平台) - 或者同样在运行相应的 .exe 可执行文件时 - 出现系统错误,提示“无法启动程序,因为我的计算机上缺少 cudart32_42_9.dll ”。

显然,即使 opencv 的自述文件告诉我使用 cuda5.0,它仍在寻找属于 32 位 cuda 4.2 工具包(cudart 32 _ 42 _9.dll)的 cuda 库 - 显然没有找到它们,因为它们没有安装。

这个问题中,提到 OpenCV v2.4.4 根本没有用 cuda 5.0 编译,唯一的方法是使用 CMake 编译我自己的库。

我的问题:

我想知道同时允许 OpenCV v2.4.4 使用 x64 cuda 5.0 运行是否成为可能,但不必使用 CMake 编译我自己的库。

我想请你们中的任何人准确地与我分享要采取的步骤。在您的解决方案中,请详细写出,因为这只是我使用 C++ 语言、编译器库 dll 等的第三周。

提前谢谢了!

编辑

这个问题实际上现在(由于@talonmies 的评论)变得更像是一个问题

  • 用户“duttasankha”,标题为“OpenCV with cuda MS Visual Studio 2008”,以及
  • 用户“zebullon”,标题为“我需要在 64 位机器上安装 64 位 SDK”。
0 投票
1 回答
1686 浏览

c++ - nvcc 在调试模式下编译失败:需要单个文件

我在尝试使用 nvcc for cuda 编译我的程序时遇到问题。我使用 Visual Studio 2012 和 cuda 5.0。

当我以发布模式启动构建时,一切正常。

在调试模式下,我在第一个 .cu 文件的编译时收到以下错误消息:

nvcc:致命错误:指定输出文件时,非链接阶段需要单个输入文件

对于发布模式,我的命令行是:

C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_13,code= \"sm_13,compute_13\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" --keep-dir "x64\Release" -maxrregcount= 0 --ptxas-options=-v --machine 64 --compile -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MD " -o "x64\Release\Icem.cu.obj" " C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem\Icem.cu"

对于调试模式:

C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_13,code= \"sm_13,compute_13\" --use-local-env --cl-version 2010 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir "x64\Debug" - maxrregcount=0 --machine 64 --compile -g -D_ CUDACC_1 -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd " -o "x64\Debug\Icem.cu. obj" "C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem\Icem.cu"

你觉得第二个有什么问题吗?我没有看到多个输入文件!知道我可以测试什么吗?

0 投票
0 回答
506 浏览

c++ - boost 序列化的链接器错误:缺少 lib 文件

我有 VC 10 并使用 boost 1.53.0。
我正在尝试从 boost serialization samples编译和链接示例程序,但链接器会生成以下错误:

我尝试了很多事情,比如检查我的包含和库路径,一切都是正确的。事实上,即使在安装了 MS VC 10 和 boost 的整个 c 驱动器中,链接器要求的这个文件名也不存在。

谢谢你。

0 投票
1 回答
372 浏览

boost-msm - 提升 MSM 伪退出状态

我正在创建一个 Boost MSM 状态机,其中一些状态有自己的子状态机。根据 Boost 示例,我创建了一个正交区域,它允许从任何地方发布错误事件以终止状态机。

在我尝试从我的一个子状态机发布错误事件之前,这一直很好。什么也没发生,似乎我需要使用伪退出状态将错误事件转发到父状态机。这最初是有效的,但是当我添加了更多的伪退出状态来处理来自每个子状态机的错误时,一段时间后就会发生编译器错误。也无法确定它,可以有 1 或 2 个伪退出状态,但最终它会中断。我在每个子状态机中没有超过 7 个转换,在父状态机中有 9 个。每个子状态机包含 2 或 3 个子状态,父状态机有 6 个。

有谁知道为什么会发生这种情况?我尝试过交换转换,但似乎没有特定的条目是错误的。看不出为什么会发生冲突,因为状态名称是由父类限定的。是不是因为即使我有不同的事件触发它,您也应该只有一个伪退出?或者它只是我的编译器?

这是错误:

有任何想法吗?谢谢。

0 投票
2 回答
518 浏览

c++ - Ogre3d 无法在 Visual Studio 2010 中链接提升库

我最近尝试按照他们网页上的教程建立一个 ogre 3d v.19 项目。设置项目后,我尝试构建它,但出现以下错误:

链接:致命错误 LNK1104:无法打开文件“libboost_thread-vc100-mt-gd-1_55.lib”

我确定我使用的是正确的食人魔 SDk(vc10)。我还检查了上面的文件是否在它的位置 - 它是!它在它应该在的文件夹中,但我仍然收到错误消息。

请帮忙。

0 投票
0 回答
389 浏览

c++ - OpenCV 和 MFC - imshow 在 32 位和 64 位上的奇怪行为

我在 Microsoft Visual Studio 2010 中有一个 MFC 项目。在我的对话框中,我有一个 PictureControl。我用opencv生成一个窗口,然后像这样将它翻译到我的PictureControl

当我为 32 位架构编译它时,它可以工作。当我为 64 位编译时,它会生成命名窗口,但不会隐藏,并且在名称处我有一个奇怪的字符串,如“%HO”,与“INPUT”不同。当我尝试使用 imshow 显示某些内容时,它会给我一个违反访问权限的错误。图像来自网络摄像头。任何帮助,将不胜感激!谢谢。

更新

我试图查看窗口处理程序 hWnd 是否正常,并且在未提交的文件中它给了我“CXX0030:错误:无法评估表达式”。在函数 cvGetWindowHandle() 的 OpenCV 文档中说,在 Win32 应用程序的情况下,它返回按名称引用的窗口的本机 HWND。