Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Динамическая загрузка библиотеки. Добавлено: 12.01.07 20:52  

Автор вопроса:   | Web-сайт: domkratt.com | ICQ: 278109632 
Такой сабж. Надо динамически грузить библиотеку, написанную на асме и выполнять некоторую функцию. Как это делать я знаю. Но функции надо передавать 6 параметров. Как это сделать при помощи CallWindowProc? Или как-то по другому?

И параллельно еще вопрос.
В dll, написанных на VB не экспортируются пользовательские функции. Можно ли их как-то экспортировать? Я вроде видел тулзу от disaware? но точно не помню.. может и глючит меня. Пишу прогу с поддержкой плагинов... приходится их на асме писать.
Пробовал пересобирать таблицу экспорта вручную, но ничего не вышло. Вылетают эксэпшены, что, в принципе, было ожидаемо.

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 13.01.07 02:01
Писать переходник... много статей на эту тему...

Ответить

Номер ответа: 2
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #2
Добавлено: 13.01.07 02:21
А не мог бы ткнуть меня лицом в одну из таких статей?
Кстати, с экспортом у меня кое-чего вроде получается! На небольших дллках. Может напишу тулзу для сборки таблицы экспорта. если все будет работать нормально.

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 13.01.07 02:23
посмотри на vbstreets в статьях...

Ответить

Номер ответа: 4
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #4
Добавлено: 14.01.07 21:46
нифига не нашел...

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 14.01.07 22:50
http://www.vbstreets.ru/VB/Articles/65976.aspx

Ответить

Номер ответа: 6
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #6
Добавлено: 15.01.07 02:58
статья не по теме. надо динамически грузить функции из библиотеки, написанной на VB
а такой способ мне давно известен... с таким же успехом я могу на любом языке написать библиотеку и грузить динамически... но хотелось бы на VB.

Ответить

Номер ответа: 7
Автор ответа:
 Viper



ICQ: 249094859 

Вопросов: 0
Ответов: 310
 Профиль | | #7 Добавлено: 15.01.07 11:00
На VB без извратов можно написать только ActiveX DLL, а отнюдь не Native DLL.

Ответить

Номер ответа: 8
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #8 Добавлено: 15.01.07 11:44
функции надо передавать 6 параметров. Как это сделать при помощи CallWindowProc?

Вызывай не саму функцию, а свой асмовый код код в ВБшном массиве, в который (массив) предварительно кидаешь параметры. Код толкает их в стек и вызывает саму функцию.

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 15.01.07 22:36
Вызывай не саму функцию, а свой асмовый код код в ВБшном массиве, в который (массив) предварительно кидаешь параметры. Код толкает их в стек и вызывает саму функцию.

который и будет являтся "переходником"...
но коль баян по вине топстартера, т.к.
статья не по теме. надо динамически грузить функции из библиотеки, написанной на VB

То следует отметит что вб создает только COM DLL, соответственно простой LoadLibrary она не грузится, через какую жопу не загрузи код который вызовет LoadLibrary.

А нужно регестрировать com сервер... ессно предварительно зарегестрировав dll, узнать GUID, ну всё как положено...

Создание такого чуда возможно с помошью не хитрых API функций CLSIDFromString/CoCreateInstance

:) делофф - панты :)))

Ответить

Номер ответа: 10
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #10 Добавлено: 16.01.07 10:50
ИМХО, проще объяснить аффтару что VB dll - это библиотека классов, а не функций.
Грузить, в принципе, можно через CoLoadLibrary, но это бессмысленно. А, скажем, для того же CoGetClassObject уже нужна регистрация. Так что регистри библу и не парься - сама будет загружаться и выгружаться.
ЗЫ Иногда имеет смысл для выгрузки вызывать CoFreeUnusedLibraries. Это не обязательно, но может ускорить процесс.

Ответить

Номер ответа: 11
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #11
Добавлено: 16.01.07 17:51
все эти способы хороши, но должен быть способ проще.
ладно, все, всем спасибо. нашел другой механизм.
если всетки получится у меня что-то с экспортом в ActiveX DLL - сообщу.

ТЕМА ЗАКРЫТА.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам