Visual Basic 2005 и создание библиотек

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Visual Basic 2005 и создание библиотек

Сообщение SystemError » 06.03.2008 (Чт) 17:23

Возникла одна проблема. Нужно в VB2005 сделать библиотеку dll для проги. Есть готовый вариант на VB6, но проблема в том, что когда я пытаюсь зарегистрировать через regsvr32 библиотеку созданную на VB2005, то вылезает ошибка "не найдена точка входа для DLLRegisterServer". Посмотрел различия между библиотекамии выяснилось, что в новой нет функций DLLRegisterServer, DLLGetClassObject и т.д., которые есть в библе сделанной на VB6.
Вопрос:
Как в VB2005 создать библиотеку с функциями регистрации как на VB6?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.03.2008 (Чт) 17:43

COM совместимость при выборе проекта

SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Сообщение SystemError » 06.03.2008 (Чт) 17:45

а где это поставить?
можешь пошагово написать?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.03.2008 (Чт) 18:00

закладка свойств проекта Compile.
галочка Register for COM interop

ну и ReBuild :)

PS
будет создана tlb-шка для твоей dll-ки, собственно она и нужна тебе.

SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Сообщение SystemError » 06.03.2008 (Чт) 18:09

т.е. эти функции в дллку все равно не вставятся?
Тогда как мне юзать эту tlb?

SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Сообщение SystemError » 06.03.2008 (Чт) 18:45

tlb Это ведь только описание библиотеки....
а мне нужно её зарегить в системе примерно так:
Код: Выделить всё
Shell("regsvr32 /s """ & dll & """", AppWinStyle.NormalFocus)

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 06.03.2008 (Чт) 18:54

SystemError
tlb юзается так же как и созданные на VB6 dll. tlb по сути описание интерфейсов, типов, констант и точек входа для внешних процедур. tlb ссылается на оригинальную dll. ТОлько вот не вижу смысла писать на .NET dll и импортировать из 6ого. Ну это твое дело.
P.S. А ты в тот раздел попал? :roll:
#define ROFL 0xDDDD

SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Сообщение SystemError » 06.03.2008 (Чт) 22:06

интересное явление:
если стоит галочка Register for COM interop, то на моей машине всё работает отлично, но если запустить екзешник с этой либой на другой машине, то он её не видит...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 07.03.2008 (Пт) 11:14

SystemError
В реестре регистрируются tlb-шки, между прочим.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.03.2008 (Пт) 15:36

regtlib

SystemError
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 05.03.2008 (Ср) 17:30

Сообщение SystemError » 10.03.2008 (Пн) 18:08

спасибо за помошь!
Проблему решил более правильным путем:
т.к. работа с DLL нужна была для поддержки плагинов, то сделал как говориться по уму:
написал DLL -ку с интерфейсами и через нее стучался к другим библитекам. Таким образом одну dll-ку добавляем в references, а остальные подключаю в рантайме без всяких регистраций в реестре.
работает замечально! Если кому из начинающих интересно, то могу скинуть проект.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

    TopList