Как сделать "API" DLL

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Как сделать "API" DLL

Сообщение Doctor Nestor » 25.06.2004 (Пт) 15:39

То есть нужно сделать не ActiveX DLL, а DLL обычного типа
Где в VB надо щелкать?
Noname - это самый популярный брэнд.

Demonx
Бывалый
Бывалый
 
Сообщения: 237
Зарегистрирован: 25.06.2003 (Ср) 0:08
Откуда: Литва/Висагинас

Re: Как сделать "API" DLL

Сообщение Demonx » 25.06.2004 (Пт) 15:45

Doctor Nestor писал(а):То есть нужно сделать не ActiveX DLL, а DLL обычного типа
Где в VB надо щелкать?


Негде щёлкать... в вб нет такого...
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 25.06.2004 (Пт) 15:45

К огромному сожалению, нигде. :(
Все, что могу посоветовать - либо садись за C или Delphi, либо за $ бери Visual DLL. :(

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 25.06.2004 (Пт) 15:45

Опоздал :)

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 25.06.2004 (Пт) 15:56

А чем Activex DLL не устраивает ??? Нормальный девайс....
Я не жалуюсь :?: 8)

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 25.06.2004 (Пт) 21:22

Меня не устраивает вот чем. Писал я большую программу, где много функций сидели в модулях. Пришлось написать ещё одно приложение, использующее часть этих функций. Теперь полностью перелопачиваю весь проект. Чтобы создать ActiveX DLL нужны не модули, а класс-модули. А если бы можно было создать обычную DLL, было бы гораздо проще - просто убрал бы модули, объявил соответствующие функции, перенёс их в dll практически оди в один.

Approximator
Постоялец
Постоялец
 
Сообщения: 572
Зарегистрирован: 26.06.2004 (Сб) 3:10

Сообщение Approximator » 26.06.2004 (Сб) 3:44

Alexanbar писал(а):Меня не устраивает вот чем. Писал я большую программу, где много функций сидели в модулях. Пришлось написать ещё одно приложение, использующее часть этих функций. Теперь полностью перелопачиваю весь проект. Чтобы создать ActiveX DLL нужны не модули, а класс-модули. А если бы можно было создать обычную DLL, было бы гораздо проще - просто убрал бы модули, объявил соответствующие функции, перенёс их в dll практически оди в один.


А так? В чём проблема? Что все неоходимые функции нельзя перенести в соответствующие классы (прямо в Вашей большой программе, для простоты можете объявить Class module Global MultiUse) и проект сделать ActiveX Exe? 8) Или проблема намного глубже? 8)
С уважением, Approximator.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 26.06.2004 (Сб) 17:43

Можно всё, но это занимет много времени

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 27.06.2004 (Вс) 12:41

Не устраивает вот чем:
При регистрации компонента на свежей машине (не загаженной присутствием VB) ругается и не делает сего действа. Прежде чем его регистрануть надо зарегистрировать целую цепочку dll. Например моя dll ссылается на msvbvm60.dll а та ещё на чё-нибудь. Если этот компонент будет только на моём компе, то всё нормально, но стоит куда нибудь перетащить, как начинаются проблеммыю Что это за "переносимость", когда для нормальной работы приложения, юзающего мой компонент, надо предварительно поставить VB. Мне всё равно какие dll писать (activeX or API), лишь бы они нормально подключались к другим проектам. КАК :?: А :shock: :?:
Noname - это самый популярный брэнд.

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 27.06.2004 (Вс) 13:30

Doctor Nestor писал(а):Не устраивает вот чем:
При регистрации компонента на свежей машине (не загаженной присутствием VB) ругается и не делает сего действа. Прежде чем его регистрануть надо зарегистрировать целую цепочку dll. Например моя dll ссылается на msvbvm60.dll а та ещё на чё-нибудь. Если этот компонент будет только на моём компе, то всё нормально, но стоит куда нибудь перетащить, как начинаются проблеммыю Что это за "переносимость", когда для нормальной работы приложения, юзающего мой компонент, надо предварительно поставить VB. Мне всё равно какие dll писать (activeX or API), лишь бы они нормально подключались к другим проектам. КАК :?: А :shock: :?:


дело в том, что даже если ты не будешь писать ни каких компонентов, твоей проге на VB нужна та самая библиотека msvbvm60.dll, и некоторые другие (которые могут присутствовать или нет на компе конечного пользователя) так что в этом нет ничего страшного.. просто надо делать Setup, который будет включать в себя всё необходимое...

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 27.06.2004 (Вс) 18:31

Я заметил :) (что msvbvm60 всегда треба). Всё бы ничего, если бы regsvr32 не ругался при регистрации компонента (даже когда msvbvm есть на компе). В чем собственно проблема:
- есть голая машина.
- на неё ставлю прогу, юзающую мой компонент.
- пытаюсь регистрануть последнего. regsvr выругался и ушёл.
Мой activeX компонент ссылается только на msvbvm60. А она на компе есть! (где положено в system32). Насколько я понимаю, msvbvm60 - это обычная api dll (non ActiveX). это к тому, что её-то регистрировать не надо. (Попытка это сделать провалилась ). Спасло только установление VB на комп. А не хотельсь бы... Что-то надо делать...
Noname - это самый популярный брэнд.

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 27.06.2004 (Вс) 21:17

Тебе надо создавать нормальные инсталяционные пакеты, которые не требуют ничего. Поищи по форуму, эта проблемма активно обсуждаеться, так же обсуждаються инструменты для её решения.

Удачи

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 28.06.2004 (Пн) 10:50

Alexanbar писал(а):Меня не устраивает вот чем. Писал я большую программу, где много функций сидели в модулях. Пришлось написать ещё одно приложение, использующее часть этих функций. Теперь полностью перелопачиваю весь проект. Чтобы создать ActiveX DLL нужны не модули, а класс-модули. А если бы можно было создать обычную DLL, было бы гораздо проще - просто убрал бы модули, объявил соответствующие функции, перенёс их в dll практически оди в один.



Дело в дизайне. Для повторного исп. модулей в послующих проектах

В текущем проекте можно создать отдельную папку для "Global" модулей.
Разумеется функции в модулях должны быть "группированы"
т.е. в модуль для работы File Font Dld не стоит пихать
функции для работы с DC


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

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

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

    TopList