Ошибка при использовании функции из dll

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

Ошибка при использовании функции из dll

Сообщение Kot22 » 03.10.2003 (Пт) 12:36

Есть Dll - MyLib.dll написанная на С++
В ней есть функция MyFunction:
extern "C" _declspec(dllexport) long __stdcall MyFunction(long a,long b)
{
return a+b;
}

В проекте VB пишу следующий текст:
Private Declare Function MyFunction Lib "MyLib.dll" _
(ByVal x1 As Long, ByVal x2 As Long) As Long

Dim x1 As Long
Dim x2 As Long
Dim TestLong As Long
TestLong = MyFunction(x1, x2)

Результат: "Ошибка времени выполнения 453"
"Невозможно найти допуск в DLL MyFunction in MyLib.dll"

Тип данных вроде совпадает, функция на C++ написана корректно.
В чем может быть проблема?

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

Сообщение Vi » 03.10.2003 (Пт) 13:56

extern "C" _declspec(dllexport) long __stdcall MyFunction(long a,long b) в таблицу экспорта запишет имя _MyFunction@8. Вот это имя и нужно давать VB для поиска.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 03.10.2003 (Пт) 18:44

Насколько я знаю, LONG который в C++ в VB не поддерживается....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot и гости: 5

    TopList