powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с вызовом библиотеки
20 сообщений из 20, страница 1 из 1
Проблема с вызовом библиотеки
    #33847485
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я решил задать вопрос и тут, поскольку вопрос с моей точки зрения адекватен для Делфи и для VB6 .

Вопрос:
Досталась мне по наследству библиотека написанная на Делфи, я хочу написать приложение на VB6.

Приложение написанное мной на Делфи нормально взаимодействует с этой библиотекой:

Код: plaintext
1.
 function  MyFunction(arg1, arg2:  String ;  var  arg3:  String ): boolean; external 'MyLib.dll';

Но когда я пытаюсь сделать вызов её из VB:

Код: plaintext
1.
Private Declare Function MyFunction Lib "MyLib.dll" (ByVal arg1 As String, ByVal arg2 As String, ByRef arg3 As String) As Boolean
у меня выходит ошибка

The Instruction at "" referenced memory at "". The memory could not be "read"

The exception unknown software exception () occured in the application at location ""

Подскажите пожалуйста, что я забыл сделать.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847687
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй через references подключить
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847695
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neZnauKto
Но когда я пытаюсь сделать вызов её из VB:
Код: plaintext
1.
Private Declare Function MyFunction Lib "MyLib.dll" (ByVal arg1 As String, ByVal arg2 As String, ByRef arg3 As String) As Boolean
у меня выходит ошибка
Таки вызов ты пытаешься делать или объявление ?
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847750
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String из паскаля и VBString - разные вещи
Кроме того, возможно параметры передаются не в том порядке(PASCAL или CDECL надо указывать)

Delphi string: 1 байт длина дальше символы
VBString: 2 байта длина дальше символы потом 0 на конце

Юникод тоже мог повлиять
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847764
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy neZnauKto
Но когда я пытаюсь сделать вызов её из VB:
Код: plaintext
1.
Private Declare Function MyFunction Lib "MyLib.dll" (ByVal arg1 As String, ByVal arg2 As String, ByRef arg3 As String) As Boolean
у меня выходит ошибка
Таки вызов ты пытаешься делать или объявление ?

Это объявлениt, вызов простой... я просто показал объявление в делфи и объявление в VB
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847768
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZeusTheTrueGodString из паскаля и VBString - разные вещи
Кроме того, возможно параметры передаются не в том порядке(PASCAL или CDECL надо указывать)

Delphi string: 1 байт длина дальше символы
VBString: 2 байта длина дальше символы потом 0 на конце

Юникод тоже мог повлиять
т.е. я так понял, не фонтан, можно даже не заморачиваться, или есть выход?
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847777
Абориген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VB корректно работает со строками С. Насчёт паскалевских - это наверно в дельфийском форуме надо спрашивать.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847832
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKOпопробуй через references подключить
никак, ошибку выдает
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847878
Абориген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через References подключаются только ActiveX DLL. Функции обычных DLL объявляются с помощью Declare.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33847913
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АборигенЧерез References подключаются только ActiveX DLL. Функции обычных DLL объявляются с помощью Declare.
Я это знаю, я просто на предложенный вариант ответил
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33848117
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, я так понял, что эту задачу нужно решать написанием своей библиотеки.
Всем удачного времени суток.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33848421
Абориген
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно написать на Delphi библиотеку-оболочку для имеющейся библиотеки, которая преобразует строковые параметры в форму, приемлемую для VB. Если память не изменяет, это AnsiString.
Или можно попробовать написать на VB преобразование паскалевской строки в строку VB. Правда не уверен, что это возможно.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #33848518
neZnauKto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АборигенМожно написать на Delphi библиотеку-оболочку для имеющейся библиотеки, которая преобразует строковые параметры в форму, приемлемую для VB. Если память не изменяет, это AnsiString.
Или можно попробовать написать на VB преобразование паскалевской строки в строку VB. Правда не уверен, что это возможно.

нет, спасибо, меня больше прельщает переход на vb net, c#, не хочу я использовать делфи, пускай не обижаются те, кто пишет на делфи.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34316779
AirBot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я может и не совсем в тему пишу...

Можно ли вызвать приложение, написанное на Delphi, из Visual Basica?
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34316840
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AirBotЯ может и не совсем в тему пишу...

Можно ли вызвать приложение, написанное на Delphi, из Visual Basica?
А что вы имеете в виду под вызовом приложения?
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34317815
AirBot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну это программка, работает с карт-ридером, вобщем читает код карты и записывает в текстовый файл. Надо из Basic вызвать ее, чтоб она получила номер, затем уже обработка файла передается Basic.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34317878
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно.
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34317907
AirBot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом?

Хотя бы примерный кусочек кода... что то в роде App. .....?
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34317952
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shell "C:\app.exe"
...
Рейтинг: 0 / 0
Проблема с вызовом библиотеки
    #34318439
AirBot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
O! Благодарю.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с вызовом библиотеки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]