Почему не регистрируется dll
От: Ryback  
Дата: 30.08.04 20:23
Оценка:
В своем Addin`е на Visual Basic я использую несколько классов, написанных ранее на C++. Я создал ATL проект и добавил в него свои классы как ATL. Затем я ATL класс компилирую, подключаю эту созданную dll библиотеку в проект на VB, собираю его вместе с setup`ом, а затем инсталлирую. На компе, где я это писал, все прекрасно работает, но при инсталляции на другом компе возникает сообщение

Module %Библиотека моего ATL проекта, скопированная на др. комп% failed to register. HRESULT -2147024769. Contact your support personnel.

Подскажите, пожалуйста, как быть
Re: Почему не регистрируется dll
От: Salex100 Россия  
Дата: 30.08.04 21:23
Оценка:
Здравствуйте, Ryback, Вы писали:

R>В своем Addin`е на Visual Basic я использую несколько классов, написанных ранее на C++. Я создал ATL проект и добавил в него свои классы как ATL. Затем я ATL класс компилирую, подключаю эту созданную dll библиотеку в проект на VB, собираю его вместе с setup`ом, а затем инсталлирую. На компе, где я это писал, все прекрасно работает, но при инсталляции на другом компе возникает сообщение

R>

R> Module %Библиотека моего ATL проекта, скопированная на др. комп% failed to register. HRESULT -2147024769. Contact your support personnel.

R>Подскажите, пожалуйста, как быть

А Вы вызываете: regsvr32 <ваша dll> на другой машине?
Жизнь удалась!
Re[2]: Почему не регистрируется dll
От: Ryback  
Дата: 31.08.04 17:17
Оценка:
Здравствуйте, Salex100, Вы писали:

S>А Вы вызываете: regsvr32 <ваша dll> на другой машине?


Да, после инсталляции setup`а я вызывал regsvr32 <моя dll>. Мне выдавалось MessageBox с фразой

Не могу найти LoadLibrary в библиотеке...

Но я решил свою проблему немножко по-другому. Я добавил в свой setup в раздел HKEY_CLASSES_ROOT реестра ветвь CLSID\<GIUD моей dll>. В нем я создал строковую переменную, которой присвоил значение пути к только что инсталлированной моей dll-ке. После этого все регистрируется и мой Addin вызывает классы из классы из библиотеки.

Однако, мне не очень понятно, почему после сборки моего проекта в VS.NET библиотека моего ATL модуля регистрируется с помощью regsvr32, а при инсталляции на другом компе выдается сообщение выше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.