VB6 + FreeBasic DLL. Передача массива.

Предыдущая тема Следующая тема Перейти вниз

VB6 + FreeBasic DLL. Передача массива.

Сообщение  AWPStar в Вт Апр 05, 2011 4:55 am

Подскажите как передать функции в FB массив из VB6 и как с ним работать внутри функции?
Желательно через указатель.

Т.е. мне нужна функция в VB такого типа
Код:
Declare Function FNCT1 Lib "lzo.dll" (ByVal in_array As Long, ByVal in_len As Long, ByVal out_array As Long, ByVal out_len As Long,) As Long
где in_array и out_array - Указатели на начало байтового массива
in_len и out_len - Размер массивов.
Из VB вызывается примерно так: FNCT1 VarPtr(arr1(0)), 100, VarPtr(arr2(0)), 100
Перерыл пол интернета, даже находил статьи, но то, что в них писалось не работало...

Если можно, напишите простейший пример функции как работать с этими массивами. Буду очень благодарен.

AWPStar

Сообщения : 6
Дата регистрации : 2011-04-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: VB6 + FreeBasic DLL. Передача массива.

Сообщение  AWPStar в Вт Апр 05, 2011 5:51 am

О! Нашел где-то!
FB
Код:
Function LenVector ALIAS "LenVector"(ByVal r As Double ptr) As Double export
 LenVector = Sqr(r[1] ^ 2 + r[2] ^ 2 + r[3] ^ 2)
End Function

VB
Код:
Declare Function LenVector Lib "test.dll" (r As Double) As Double
Private Sub TestVector()
 Dim a As Double, r(0 To 3) As Double
  r(1) = 5: r(2) = 4: r(3) = -1
  a = LenVector(r(0))
End Sub

Причем работает как будто массив объявлен как ByRef...
Что-то непонятное.


Вопрос такой, как объявлять глобальные переменные? Чтобы из процедур юзать?

AWPStar

Сообщения : 6
Дата регистрации : 2011-04-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Глобальные переменные

Сообщение  AWPStar в Вт Апр 05, 2011 5:54 am

И это нашел...
Код:
dim shared

Можно тему закрыть

AWPStar

Сообщения : 6
Дата регистрации : 2011-04-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: VB6 + FreeBasic DLL. Передача массива.

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения