Удаленная отладка C ++ на платформе Windows Server 2008 с VS2010;MSVCP100D.dll отсутствует - PullRequest
0 голосов
/ 16 февраля 2011

Я написал быстрое консольное приложение на C ++ с использованием VS2010. Я хотел бы запустить его через удаленный отладчик на платформе 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 ++ на целевой хост. Это не имеет никакого эффекта. У меня нет идей, у кого-нибудь есть предложения?

Потратив некоторое время на эту проблему, я заметил, что служба Windows Audio на сервере 2008 была отключена, но мой запрос больше связан с работой удаленной отладки на платформе server 2008, чем с решением проблемы с перечислением моего аппаратного оборудования .

Ответы [ 2 ]

4 голосов
/ 16 февраля 2011

Благодаря Errata, я посмотрел на

Свойства проекта -> Свойства конфигурации -> C ++ -> Генерация кода

Я изменил Runtime Library с многопоточной отладочной DLL на многопоточную отладку (/MTd).

Это позволяет выполнять удаленную отладку без необходимости полагаться на правильные библиотеки отладки, находящиеся на удаленной машине.

Надеюсь, это кому-нибудь поможет!

1 голос
/ 01 февраля 2013

У меня была именно такая ситуация. Я взял копии MSVCP100D.dll и MSVCR100D.dll. Однако я взял их из system32 (32-разрядная версия), что привело к ошибке 0xc0000007b.

0xc0000007b, очевидно, означает недопустимую DLL, часто несоответствие архитектуры между программой и DLL (т.е. x86 и x64). В моем случае я получил неверную (32-разрядную) версию DLL со своего компьютера разработки, что привело к 0xc0000007b. После получения файла из SysWOW64 все заработало.

...