ATL Dll не может зарегистрироваться в XP - PullRequest
1 голос
/ 24 февраля 2010

Я создал простой COM-объект с ATL VS 2008. Я могу успешно зарегистрировать dll на своем компьютере и использовать его.

Тем не менее, я попытался зарегистрировать dll на компьютере с установленной XP и установкой no VS 2008. Но это не похоже на работу.

Затем я установил распространяемый пакет обновления 1 для VC 2008 и попытался. Тем не менее регистрация не удалась.

Затем я выполнил статическую сборку dll и попытался на той же машине, но безуспешно.

Не могли бы вы помочь мне выяснить, что здесь происходит?

Спасибо

EDIT

Я обнаружил, что ATL dll можно распространять с помощью следующих библиотек времени выполнения

\ VC \ Redist \ x86 \ Microsoft.VC90.ATL \
atl90.dll, Microsoft.VC90.ATL.manifest

Есть идеи, где разместить эти файлы на клиентском компьютере?

EDIT

После того, как было опробовано несколько способов, наконец, я сделал статическую сборку для ATL и MFC . Удивительно, но это сработало. Но я не использовал ни одну из библиотек MFC внутри ATL DLL, может кто-нибудь объясните, пожалуйста, зачем нужны библиотеки MFC?

Ответы [ 2 ]

1 голос
/ 24 февраля 2010

В папке инструментов Visual studio должен быть инструмент под названием зависимость.exe

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

0 голосов
/ 24 февраля 2010

Возможно, вам нужно убедиться, что у вас установлена ​​правильная среда выполнения vc2008, у меня на компьютере 4:

  • 9.0.21022,
  • 9.0.30729,
  • 9.0.30929.17,
  • 9.0.3.30729.4148.

. Вы можете проверить файл .manifest, от версии которого зависит ваша dll.а также обязательно отправьте файл .manifest вместе с dll, если вы не знаете, как от него не зависеть.

...