我使用VS2010编写了一个快速的C ++控制台应用程序。我想通过Windows Server 2008平台上的远程调试器运行它,以确定为什么我无法枚举该操作系统上的CLSID_AudioInputDeviceCategory。
控制台应用程序适用于XP和W7平台。
当我第一次尝试运行控制台应用程序时,远程调试器出现以下错误:
The program can't start because MSVCP100D.dll is missing from your computer. Try reinstalling the program to fix the problem.
我尝试将此DLL从我的开发机器复制到远程计算机上的目标文件夹,但它返回了一条更加模糊的消息:
The application was unable to start correctly (0xc0000007b). Click OK to close the application.
我尝试在目标主机上安装VS2010 C ++可重新分发。这没有效果。我没有想法,有没有人有任何建议?
花了一些时间来解决这个问题,我注意到服务器2008上的Windows音频服务已被禁用,但我的查询更多的是在服务器2008平台上进行远程调试而不是解决我的音频硬件枚举问题
答案 0 :(得分:4)
感谢勘误表,我看了
项目属性 - >配置属性 - > C ++ - >代码生成
我将运行时库从多线程调试DLL更改为多线程调试(/ MTd)。
这允许远程调试,而不必依赖驻留在远程计算机上的正确调试DLL。
我希望这有助于那里的人!
答案 1 :(得分:0)
我有这种确切的情况。我抓住了MSVCP100D.dll和MSVCR100D.dll的副本。但是我从system32(32位版本)中抓取它们,导致0xc0000007b错误。
0xc0000007b显然意味着无效的DLL,通常是程序和DLL(即x86和x64)之间的架构不匹配。在我的情况下,我从我的开发计算机中获取了错误的(32位)DLL版本,导致0xc0000007b。从SysWOW64获取文件后,它工作正常。