В своем Addin`е на Visual Basic я использую несколько классов, написанных ранее на C++. Я создал ATL проект и добавил в него свои классы как ATL. Затем я ATL класс компилирую, подключаю эту созданную dll библиотеку в проект на VB, собираю его вместе с setup`ом, а затем инсталлирую. На компе, где я это писал, все прекрасно работает, но при инсталляции на другом компе возникает сообщение
Module %Библиотека моего ATL проекта, скопированная на др. комп% failed to register. HRESULT -2147024769. Contact your support personnel.
Подскажите, пожалуйста, как быть
Здравствуйте, 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> на другой машине?
Здравствуйте, Salex100, Вы писали:
S>А Вы вызываете: regsvr32 <ваша dll> на другой машине?
Да, после инсталляции setup`а я вызывал regsvr32 <моя dll>. Мне выдавалось MessageBox с фразой
Не могу найти LoadLibrary в библиотеке...
Но я решил свою проблему немножко по-другому. Я добавил в свой setup в раздел HKEY_CLASSES_ROOT реестра ветвь CLSID\<GIUD моей dll>. В нем я создал строковую переменную, которой присвоил значение пути к только что инсталлированной моей dll-ке. После этого все регистрируется и мой Addin вызывает классы из классы из библиотеки.
Однако, мне не очень понятно, почему после сборки моего проекта в VS.NET библиотека моего ATL модуля регистрируется с помощью regsvr32, а при инсталляции на другом компе выдается сообщение выше.