Как передать из VB в PB двухмерный с неизвестным размером?

Раздел посвящен программированию с использованием Power Basic.
SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Как передать из VB в PB двухмерный с неизвестным размером?

Сообщение SGO » 14.01.2008 (Пн) 15:51

Как-то давно нашёл пример как при помощи vbapi32.inc передавать масивы, это сделать легко, если они статического размера. У меня же они могут меняться, как передать размеры?
Они вроде как должны быть здесь:
vbArrayLBound(psa, 1) 'от
vbArrayUBound(psa, 1) 'до
bArrayFirstElem(psa) 'указатель первого элемента
Но при запуске программы она вылетает напрочь.
Есть конечно мысль передавать размеры как аргументы функций, но мне кажется это как-то некрасиво...

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 17.01.2008 (Чт) 10:35

Можно передавать указатель на структуру, описывающую переменный массив.

Код: Выделить всё
Type MASSIW
    SIZE As Long ' размерность массива
    PTR As Long  ' указатель на первый  элемент массива
End Type

Dim arr As MASSIW



InDll VarPtr(arr) 'передача описателя массива в DLL

SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Сообщение SGO » 17.01.2008 (Чт) 11:37

Над этим способом я тоже думал. Так или иначе я выкрутился иначе (Сделал большой массив в длл, и функции для его управления из vb). Даже быстрей работает. Хотя не очень удобно.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.01.2008 (Чт) 19:02

Передать как есть, узнать размерность функциями для работы с SafeArray.
Изображение


Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList