GetProcAddress, а дальше?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Golod
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 111
Зарегистрирован: 24.04.2002 (Ср) 15:56
Откуда: Россия Воронеж

GetProcAddress, а дальше?

Сообщение Golod » 26.03.2003 (Ср) 14:19

Dim ss As Long
Dim zz As Long
ss = LoadLibrary("vasya.dll")
zz = GetProcAddress(GetModuleHandle("vasya.dll"), "GetVersion")

А что дальше?

GetVersion () as string
vas = Getversion () - вылетает с ошибкой 7 - out of memory
если как Long - куча цифр, но что потом с ними делать?



А так - поподробней, если есть возможность
Последний раз редактировалось Golod 26.03.2003 (Ср) 14:40, всего редактировалось 1 раз.
-=-=-=-=-=-=-=-=-=-=-=-=--=-
Что-то очень кушать хочетса.... http://pavel.cid.ru

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 26.03.2003 (Ср) 14:38

VB - это не С! Не все функции, могущие быть доступными в VB, VB может использовать.

Единственный вариант
Код: Выделить всё
Declare Function GetVersion Lib "vasya.dll" Alias "GetVersion_Invasyadll" () As String
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 27.03.2003 (Чт) 9:21

Можно как предложил Vi, а вообще после GetProcAdress нужно вызывать CallWindowProc с полученным адресом, ну и соответствующие параметры. Выгружать библиотеку с помощью FreeLibrary.
Keyboard not found. Press any key.

Golod
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 111
Зарегистрирован: 24.04.2002 (Ср) 15:56
Откуда: Россия Воронеж

Сообщение Golod » 27.03.2003 (Чт) 10:59

ToT писал(а):Можно как предложил Vi, а вообще после GetProcAdress нужно вызывать CallWindowProc с полученным адресом, ну и соответствующие параметры. Выгружать библиотеку с помощью FreeLibrary.


А вот конкретно в моём случае, как это сделать?
Функция GetVersion должна вернуть стринговую переменную
-=-=-=-=-=-=-=-=-=-=-=-=--=-
Что-то очень кушать хочетса.... http://pavel.cid.ru

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 28.03.2003 (Пт) 15:39

Golod писал(а):А вот конкретно в моём случае, как это сделать?
Функция GetVersion должна вернуть стринговую переменную

"Дальтоник, что ли?" :)
Нельзя использовать таким образом. Напиши свою функцию в С, которой передавай имя длл и имя функции, принимай параметры в VARIANTе и возвращай VARIANT. Эту функцию ропиши в Declare и используй на здоровье.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Tauron
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 187
Зарегистрирован: 14.07.2002 (Вс) 17:43
Откуда: Kazakhstan

Сообщение Tauron » 29.03.2003 (Сб) 19:19

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

KolAR
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 29.03.2003 (Сб) 1:11
Откуда: Ялта

Сообщение KolAR » 29.03.2003 (Сб) 21:04

Учи С++...


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

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

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

    TopList