Проблема с регистрацией dll
От: valchakov  
Дата: 28.03.10 20:10
Оценка:
Здравствуйте, уважаемые форумчане!
Недавно начал работать с MSVS2008 и столкнулся со следующей проблемой:
Написал расширение оболочки по статье http://www.rsdn.ru/article/winshell/shlext1.xml
Автор(ы): Michael Dunn
Дата: 17.04.2001
(т.е. имеет место ATL COM проект на выходе которого dll). Отладил, откомпилировал на своей машине под Windows 7 x64. Все работает, все ок. Пытаюсь зарегистрировать данную dll на машине пользователя, на этапе регистрации получаю ошибку "Не удалось загрузить модуль my.dll ..." Возможно ошибка в разных версиях msvcr80.dll. Библиотека .NET Framework у пользователя установлена. Подозреваю, что нужно что-то изменить в настройках проекта перед компиляцией, что-то в сторону Runtime Libray = Multi-threaded (/MT). Но все равно ругается. Подскажите, пожалуйста по пунктам, какие настройки были выставлены, чтобы все необходимые dll были при компиляции подключены в мою my.dll. Спасибо.
Re: Проблема с регистрацией dll
От: Аноним  
Дата: 29.06.10 09:27
Оценка:
Здравствуйте, valchakov, Вы писали:

V>Здравствуйте, уважаемые форумчане!

V>Недавно начал работать с MSVS2008 и столкнулся со следующей проблемой:
V>Написал расширение оболочки по статье http://www.rsdn.ru/article/winshell/shlext1.xml
Автор(ы): Michael Dunn
Дата: 17.04.2001
Библиотека .NET Framework у пользователя установлена.


http://blogs.msdn.com/b/oldnewthing/archive/2006/12/18/1317290.aspx
Re: Проблема с регистрацией dll
От: Baskak Россия  
Дата: 29.06.10 18:40
Оценка:
Здравствуйте, valchakov, Вы писали:

V>Здравствуйте, уважаемые форумчане!

V>Недавно начал работать с MSVS2008 и столкнулся со следующей проблемой:
V>Написал расширение оболочки по статье http://www.rsdn.ru/article/winshell/shlext1.xml
Автор(ы): Michael Dunn
Дата: 17.04.2001
(т.е. имеет место ATL COM проект на выходе которого dll). Отладил, откомпилировал на своей машине под Windows 7 x64. Все работает, все ок. Пытаюсь зарегистрировать данную dll на машине пользователя, на этапе регистрации получаю ошибку "Не удалось загрузить модуль my.dll ..." Возможно ошибка в разных версиях msvcr80.dll. Библиотека .NET Framework у пользователя установлена. Подозреваю, что нужно что-то изменить в настройках проекта перед компиляцией, что-то в сторону Runtime Libray = Multi-threaded (/MT). Но все равно ругается. Подскажите, пожалуйста по пунктам, какие настройки были выставлены, чтобы все необходимые dll были при компиляции подключены в мою my.dll. Спасибо.


.NET Framework тут явно ни при чём, т.к. ATL COM проект чисто нативный.

Я пробовал пример из этой статьи делать чисто на WinApi, а ATL COM честно говоря не приходилось не разу делать, но кроме Runtime Libray = Multi-threaded (/MT) не нужно ничего менять в настройках проекта.

На машине пользователя что за операционка установлена? Тоже x64? Может банально пытаетесь x64 dll на x86 операционке прикрутить или наоборот? Ну или там регистрировали dll x64 на операционке x64 из файлового менеджера 32-разрядного, не этот случай часом?

А в общем случае возьмите Dependency Walker и на машине пользователя посмотрите, каких dll или ещё чего вашему модулю не хватает. Сразу увидите, если дело в этом.
Re: Проблема с регистрацией dll
От: valchakov  
Дата: 29.06.10 19:49
Оценка:
Всем спасибо за ответы.
Проблема оказалась в неполностью выставленных настройках проекта. Помимо Runtime Libray = Multi-threaded (/MT) нужно было выставить опции для статической линковки MFC и ATL, после этого все заработало как нужно.
Re[2]: g711
От: IBoB  
Дата: 26.08.10 16:01
Оценка:
Здравствуйте, valchakov, Вы писали:

V>Всем спасибо за ответы.

V>Проблема оказалась в неполностью выставленных настройках проекта. Помимо Runtime Libray = Multi-threaded (/MT) нужно было выставить опции для статической линковки MFC и ATL, после этого все заработало как нужно.
Не лучший вариант. Советую разобраться с помощью depends.exe
Будут деньги, дом в Чикаго, много женщин и машин...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.