Работа с пользовательскими типами

  • Автор темы v2v
  • Дата начала
V
#1
У меня есть 2 функции импортируемые из с++, одна из них принимает мой тип InitInfo, как параметр, а другая должна возвращать её , так вот: функция которая принимает мой тип как параметр работает правильно, а функция , которая должна возвращать этот тип выдаёт ошибку , где я ошибся:

Type InitInfo
Handle As Long
ROM(1 To 9) As Byte
End Type
Declare Function FD Lib "C:\DEVELOP\TMDLL_v101\tmdll" Alias "?FDZ"(TmInf As InitInfo) As Byte

Declare Function Initialization Lib "C:\DEVELOP\TMDLL_v101\tmdll" Alias "?Initialization" () As InitInfo ' тут ошибка

???
 
O

oshmianski

#2
У меня есть 2 функции импортируемые из с++, одна из них принимает мой тип InitInfo, как параметр, а другая должна возвращать её , так вот: функция которая принимает мой тип как параметр работает правильно, а функция , которая должна возвращать этот тип выдаёт ошибку , где я ошибся:

Type InitInfo
Handle As Long
ROM(1 To 9) As Byte
End Type
Declare Function FD Lib "C:\DEVELOP\TMDLL_v101\tmdll" Alias "?FDZ"(TmInf As InitInfo) As Byte

Declare Function Initialization Lib "C:\DEVELOP\TMDLL_v101\tmdll" Alias "?Initialization" () As InitInfo ' тут ошибка

???
хм, у меня и c Variant не получается.
кажется мне, что нужно передавать пустую структуру в функцию для заполнения, а возвращать Boolean - типа, все гут или все плохо. а?
 
V
#3
нет, не катит.
Смотри: я покдлючаю функцию, которая будет что-то делать над переданными параметрами, а потом вернёт результат - значение, а не сделал/не сделал.. Вот это значение представлено в виде нескольких переменных, вот я и сделал для него свой Type и теперь хочу его вернуть из функции....
Ладно я нашёл выход: передача нужных данных по ссылке как параметр, но вот беда: как мне масив передать таким образом??