Visual Basic dll for Delphi
От: Аноним  
Дата: 28.09.04 07:05
Оценка:
Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция
(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)
Мне нужно подключить эту dll в Delphi и вызвать эту функцию. Пишу
function GetXXX(var str1: String; var str2: String: Integer;
external 'xxx.dll';

При вызове функции из Delphi возникает ошибка 'Access violation in module xxx.dll'.

Кажется всё правильно, но может быть кто-то сталкивался с подобной проблемой и знает решение?

P.S.: исходников dll нет.
Re: Visual Basic dll for Delphi
От: algol Россия about:blank
Дата: 28.09.04 10:24
Оценка: -1
Здравствуйте, Аноним, Вы писали:

А>Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция

А>(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)
А>Мне нужно подключить эту dll в Delphi и вызвать эту функцию. Пишу
А>function GetXXX(var str1: String; var str2: String: Integer;
А>external 'xxx.dll';
А>При вызове функции из Delphi возникает ошибка 'Access violation in module xxx.dll'.

1. 100% что dll написана не на VB.
2. Попробуй указать для параметров AnsiString.
Re[2]: Visual Basic dll for Delphi
От: Аноним  
Дата: 28.09.04 10:48
Оценка:
Здравствуйте, algol, Вы писали:


A>1. 100% что dll написана не на VB.

A>2. Попробуй указать для параметров AnsiString.

1. Возможно и не на VB. Просто она шла с приложением написанным на VB. Поэтому так и подумалось.
2. Пробовал и AnsiString и WideString и даже PChar. Ничего не помогает. Указывал команды stdcall; safecall; register; pascal; cdecl; Тоже ничего....

Уже не знаю на что грешить.
Re: Visual Basic dll for Delphi
От: Vi2 Удмуртия http://www.adem.ru
Дата: 28.09.04 11:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция

А>(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)

Я тебе напишу прототип на С, а ты уж сам переведи в Delphi.
short __stdcall GetXXX( char * str1, char * str2 );
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re: Visual Basic dll for Delphi
От: garrick Россия  
Дата: 28.09.04 11:35
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция

А>(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)
А>Мне нужно подключить эту dll в Delphi и вызвать эту функцию. Пишу
А>function GetXXX(var str1: String; var str2: String: Integer;
А>external 'xxx.dll';

А>При вызове функции из Delphi возникает ошибка 'Access violation in module xxx.dll'.


А>Кажется всё правильно, но может быть кто-то сталкивался с подобной проблемой и знает решение?


А>P.S.: исходников dll нет.


VB6 не умеет делать обыкновенные DLL, только ActiveX. Использовать их можно через OLE.
... << RSDN@Home 1.1.4 @@subversion >>
Re: Visual Basic dll for Delphi
От: Аноним  
Дата: 30.09.04 12:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция

А>(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)
А>Мне нужно подключить эту dll в Delphi и вызвать эту функцию. Пишу
А>function GetXXX(var str1: String; var str2: String: Integer;
А>external 'xxx.dll';

А>При вызове функции из Delphi возникает ошибка 'Access violation in module xxx.dll'.


А>Кажется всё правильно, но может быть кто-то сталкивался с подобной проблемой и знает решение?


А>P.S.: исходников dll нет.


1. тебе Private ни о чем не говорит?
2. это код VB (стандартное использование не COM Dll). А разве в Delphi нельзя вызвать функцию из не COM dll? Dll тебе должна быть известна (xxx.dll), функция то же (GetXXX) что еще надо? Нафига тебе вызывать GetXXX через VB?
Re[2]: Visual Basic dll for Delphi
От: algol Россия about:blank
Дата: 30.09.04 12:57
Оценка:
Здравствуйте, Аноним, Вы писали:

Ты вопрос-то читал?

А>1. тебе Private ни о чем не говорит?


А тебе о чем говорит?

А>2. это код VB (стандартное использование не COM Dll). А разве в Delphi нельзя вызвать функцию из не COM dll?


Еще как можно. Не хуже, чем в VB.

А>Dll тебе должна быть известна (xxx.dll), функция то же (GetXXX) что еще надо? Нафига тебе вызывать GetXXX через VB?


А никто и не вызывает.
Re[3]: Visual Basic dll for Delphi
От: Аноним  
Дата: 30.09.04 13:39
Оценка:
Здравствуйте, algol, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


A>Ты вопрос-то читал?


По слогам

A>А никто и не вызывает.


Да? а что пытается делать ? (<quote>Мне нужно подключить эту dll в Delphi и вызвать эту функцию</quote>)

Поэтому еще раз повторюсь ЭТУ.DLL не надо юзать надо юзать xxx.dll

A> А тебе о чем говорит?

Например то что хрен другой "Аноним" вызовет эту функцию. Причем не только из Delphi.

ЗЫ долго однако регистрация здесь идет.....
Re[2]: Visual Basic dll for Delphi
От: Аноним  
Дата: 30.09.04 13:44
Оценка:
Здравствуйте, algol, Вы писали:

A>1. 100% что dll написана не на VB.


Мда... Лучше бы вы кроме
>Ты вопрос-то читал?
>Еще как можно. Не хуже, чем в VB.
>А никто и не вызывает.
ничего бы не писали. Просто за флудера сошли бы
Re: Visual Basic dll for Delphi
От: Аноним  
Дата: 30.09.04 13:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ситуация такая: есть dll написанная на vb. В ней экспортирована одна функция

А>(Private Declare Function GetXXX Lib "xxx.dll" (ByVal str1 As String, ByVal str2 As String) As Integer — это её объявление в vb)
А>Мне нужно подключить эту dll в Delphi и вызвать эту функцию. Пишу
А>function GetXXX(var str1: String; var str2: String: Integer;
А>external 'xxx.dll';

А>При вызове функции из Delphi возникает ошибка 'Access violation in module xxx.dll'.


А>Кажется всё правильно, но может быть кто-то сталкивался с подобной проблемой и знает решение?


А>P.S.: исходников dll нет.



Проблема решается следующим образом забываешь о существовании есть.dll и VB.
Идеш в форум по Delphi и спрашиваешь <msg>Как из не комовской xxx.dll вызвать функцию GetXXX</msg>
Re[4]: Visual Basic dll for Delphi
От: algol Россия about:blank
Дата: 30.09.04 14:23
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Да? а что пытается делать ? (<quote>Мне нужно подключить эту dll в Delphi и вызвать эту функцию</quote>)


А>Поэтому еще раз повторюсь ЭТУ.DLL не надо юзать надо юзать xxx.dll


A>> А тебе о чем говорит?

А>Например то что хрен другой "Аноним" вызовет эту функцию. Причем не только из Delphi.

Объясняю по слогам. У анонима есть неизвестная DLL и пример вызова из нее функции на VB. Он в курсе, как вызывать функции из DLL в Delphi и вызывает ее, но получает ошибку. Т.е. он неправильно ее определил. Вопрос стоял — как правильно описать эту функцию в Delphi по известному определению в VB.
Никакие промежуточные dll (ЭТА.DLL) для вызова этой функции не используются. И Private здесь по барабану.
Re[5]: Visual Basic dll for Delphi
От: Bazaea Россия  
Дата: 30.09.04 14:50
Оценка: -1
Здравствуйте, algol, Вы писали:

VB. Он в курсе, как вызывать функции из DLL в Delphi и вызывает ее, но получает ошибку. Т.е. он неправильно ее определил. Вопрос стоял — как правильно описать эту функцию в Delphi по известному определению в VB.
A>Никакие промежуточные dll (ЭТА.DLL) для вызова этой функции не используются. И Private здесь по барабану.

Если <quot>по известному определению в VB</quot> то в чем проблема? Имя функции он знает, имя dll то же... что он тогда делает в ветке VB? Нафига подключает библиотеку на VB?, пусть он идет в ветку дельфи и просит что бы ему рассказали как работать с API в прочем я это уже писал 30.09.04 17:56 (токо тогда у меня ника не было).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.