Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Декларирование пользовательского класса DELPHI <=> VB / 12 сообщений из 12, страница 1 из 1
24.09.2019, 08:00
    #39866026
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
Доброго дня господа

Delphi DLL - делаю вызов из VBA

Описываю функцию в Delphi
Код: pascal
1.
function MyFunction(const filename: PAnsiChar): Integer; stdcall;



Описываю функцию в VBA
Код: vbnet
1.
Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As String) As Long


Конструкции ясны и работоспособны

Хотелось бы иметь в качестве параметра передать пользовательский класс (или указатель него)
Код: pascal
1.
2.
function MyFunction(const filename: TmyClass): Integer; stdcall;
function MyFunction(const filename: PmyClass): Integer; stdcall;



Как описываю тип в VBA
Код: vbnet
1.
2.
3.
Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As Object) As Long  - не подходит 
Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As Any) As Long      - не подходит
Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As Variant) As Long - не подходит



Возможно так = LONG ?
Private Declare Function MyFunction Lib "mydll.dll" (ByVal filename As Long ) As Long
Но как описать длинную целую в исходном коде DLL и применительно к классу или указателю на этот класс

Спасибо
...
Рейтинг: 0 / 0
24.09.2019, 08:14
    #39866033
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
HOME_XХотелось бы иметь в качестве параметра передать пользовательский класс (или указатель него)
Классы совместимы между делфи и бейсиком?
...
Рейтинг: 0 / 0
24.09.2019, 08:21
    #39866036
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
wadman,

Класс типа record ...
А можно ли передать указатель ? и как это сделать ?
...
Рейтинг: 0 / 0
24.09.2019, 08:35
    #39866045
ma1tus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
HOME_XКласс типа record ...
А можно ли передать указатель ?
А каким образом (в виде кода VBA) предполагается использовать там этот указатель ?
...
Рейтинг: 0 / 0
24.09.2019, 08:40
    #39866048
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
HOME_XКласс типа record ...
Что-то вроде такого https://stackoverflow.com/questions/28369364/passing-a-delphi-record-type-to-vb6-dll
...
Рейтинг: 0 / 0
24.09.2019, 09:17
    #39866061
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
wadmanHOME_XКласс типа record ...
Что-то вроде такого https://stackoverflow.com/questions/28369364/passing-a-delphi-record-type-to-vb6-dll

Принято - работаю

А не могли бы подкинуть пример где в качестве примера был бы указатель
(НЕ указатель конкретный тип......) такое возможно ?


Спасибо
...
Рейтинг: 0 / 0
24.09.2019, 10:19
    #39866101
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
...
Рейтинг: 0 / 0
24.09.2019, 10:26
    #39866105
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
...
Рейтинг: 0 / 0
24.09.2019, 10:56
    #39866127
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
ziv-2014,

Смотрел еще OleVariant http://qaru.site/questions/8472309/how-to-pass-string-from-vba-to-delphi-dll-avoiding-sharemem-using

Но все равно не получил эффекта
...
Рейтинг: 0 / 0
24.09.2019, 12:13
    #39866182
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
HOME_Xziv-2014,

Смотрел еще OleVariant http://qaru.site/questions/8472309/how-to-pass-string-from-vba-to-delphi-dll-avoiding-sharemem-using

Но все равно не получил эффекта
Там все сделано через одно место.
Можно передавать PAnsiChar, PWideChar и WideString. Вопрос, а какой формат строки в VBA? Он точно один из перечисленных?
...
Рейтинг: 0 / 0
24.09.2019, 12:17
    #39866189
ziv-2014
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
HOME_X,
Строки в VBA судя по хелпу соответствую типу PAnsiChar в делфи.
PAnsiChar требует указателя на строку в стеке. Его надо передать из VBA и будет счастье.
...
Рейтинг: 0 / 0
24.09.2019, 22:32
    #39866603
HOME_X
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Декларирование пользовательского класса DELPHI <=> VB
ziv-2014,

Счастье полное - передача данных integer,String, указателя на пользовательских класс
Все в норме - спасибо
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Декларирование пользовательского класса DELPHI <=> VB / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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