Как мне кажется, очень экзотическая задача с которой у меня возникли серьезные трудности. Надеюсь на вашу помощь.
Итак задача:
Пишу программу на VB6. В ней появилась необходимость быстрого чтения бинарных файлов. Решил само чтение реализовать в Dll, написанной на с++, а результат ее работы - здоровенный одномерный массив - передавать обратно в VB.
Решил действовать по следующему алгоритму:
Создаем массив размерности n,
Передаем его в качестве аргумента на вход в ту самую функцию из dll.
Вот пробный код функции из DLL:
short WINAPI ReadData(short p[5], short out){
out = p[0];
return out;
}
Пробный код на VB:
Private Declare Function ReadData Lib "Project1.dll" (ByRef Arr() As Integer, ByRef out As Integer) As Integer
Dim arr(5) As Integer
Dim out As Integer
For i = 0 To 5
arr(i) = Rnd * 100
Next
Debug.Print ReadData(arr(), out)
Возвращает - какую-то несуразицу вроде "-3048"
Как быть?