Большой Воронежский Форум
» Программирование>DLL - создание и использование.
RDman 01:52 18.03.2007
Всем привет. Народ, вопрос в следующем: я создаю собственную dll к своему exe'шнику на VB6 и после компиляции, VB6 автоматически прописывает в реестре к ней путь. Т.е. прога моя из любого места видит эту dll'ку... А если мне надо перетащить exe'шник своей проги вместе с библиотекой на др. комп, как dll в реестре той машины зарегистрировать? Фишка в том, что прога пока что эксперементальная и городить к ней целый инсталлятор нет никакого настроения. Однако, надо чтобы юзер не лез своими рученками )) в редактор реестра добавлять запись о dll, а просто как-то попроще смог внести туда соотв. запись о библиотеке. Можно, чтоб при первом запуске exe'шник сам все данные о своей библиотеке вносил в реестр или лучше создать какой нить *.reg файл cо всей необходимой инфой? Короче я загнался... [Ответ]
Yandex 11:57 18.03.2007
Возможно будет достаточно выполнить regsvr32 с параметром имя_твоей_dll. [Ответ]
dgk 19:16 18.03.2007
Простите, не понял, зачем нужна запись в реестре? Это COM-объект? Если это обычная DLL, то насколько я помню VB6, ее можно загрузить по имени. А чтобы найти по имени, она д.б. в пути и все.
Если COM-объект, то Yandex совершенно справедливо говорил о regsvr32. [Ответ]
RDman 19:33 18.03.2007
dgk, СOM объект...

Сейчас проблемка в следующем: при выполнении regsvr32.exe Имя_Dll из Пуск - Выполнить или из программы, командой Shell regsvr32.exe Имя_Dll вываливается вот такая ошибка:
Изображения
Нажмите на изображение для увеличения
Название: Er.jpg
Просмотров: 23
Размер:	14.6 Кб
ID:	102031  
[Ответ]
RDman 20:08 18.03.2007
Кстати, народ, чтобы корректно была выполнена эта команда, ДЛЛ должна в System32 находиться? Или ее можно зарегить в каталоге с прогой? [Ответ]
mikе 20:26 18.03.2007
ну в дельфях или си-билдере, например, путь к DLL указываеся либо явно (от корня), либо относительно (от самой программы). плюс, каэшн, сие нужно указывать в описании функции, которая заведомо в библиотеке есть. [Ответ]
RDman 20:45 18.03.2007
сейчас пробовал из system32 - прошло на ура. Из папки с прогой - не хочет. [Ответ]
mikе 21:07 18.03.2007
RDman, хз как там VB работает... [Ответ]
Yandex 09:32 19.03.2007
RDman, ты небось в папку с прогой не переходил, потому ясен пень dll была не найдена.

Последовательность должна быть такая:
1. Перейти в папку, в которой лежит dll
2. Зарегить ее.
или
1. Поместит dll в "общую" (system32, system или чего еще там) папку
2. Зарегистрировать ее.

После регистрации появится ключ в реестре, который так же содержит путь к этой dll. Убедиться можно, просто задав поиск по реестру по имени dll. [Ответ]
RDman 11:07 19.03.2007

Сообщение от Yandex:
небось в папку с прогой не переходил, потому ясен пень dll была не найдена

я даже тупо показывал путь на нее... полностью. [Ответ]
Yandex 12:53 19.03.2007
Возможно надо было типа того (подковычить)

Сообщение от :
regsvr32 "C:\Program Files\Супер Прога\Портясающая.dll"

Вообще надо было бы привести вариант как ты пробовал. По идее, где лежит dll, абсолютно все равно. [Ответ]
RDman 18:23 19.03.2007
Yandex, спасибо, буду пробовать. Кавычки не пробовал. [Ответ]
Вверх