Передача массивов как параметры в VB6

Вы утверждаете, что размещаете JSON:

"Content-Type: application/json",
blockquote>

Но так вы генерируете данные, которые вы POST:

http_build_query($data)
blockquote>

И документация для этого гласит:

Создать строку запроса в кодировке URL

blockquote>

Вам необходимо отправить фактический JSON. Используйте json_encode .

10
задан graham.reeds 12 May 2009 в 12:16
поделиться

3 ответа

У меня нет ответа, и это, конечно, любопытный вопрос, но почему бы просто не добавить метод и не двигаться дальше?

'Passed the test
Public Sub LetMyArray(anArray() As Long)
    m_myArray = anArray
End Sub


'oClass.MyArray = newArray ' <- This kills VB6 dead
oClass.LetMyArray newArray  ' <- This works
8
ответ дан 3 December 2019 в 21:22
поделиться

Я понятия не имею, почему это происходит, но если вам все равно нужна копия массива, используйте вариант в классе 2:

Private m_myArray As Variant

Public Property Get myArray() As Variant
    myArray = m_myArray
End Property

Friend Property Let myArray(anArray As Variant)
    m_myArray = anArray
End Property

Исправляет это, но все же мне любопытно причина.

1
ответ дан 3 December 2019 в 21:22
поделиться

Это ошибка в IDE (скомпилирована нормально), которую MS никогда не исправляла. Я использую обходной путь с временным массивом вроде этого:

Friend Function Add(newArray() As Long) As Class1
    Dim oClass As Class1
    Dim tempArray() As Long
    Set oClass = New Class1

    tempArray = newArray
    oClass.myArray = tempArray <- Should work now
    MsgBox "passed"

End Function

К вашему сведению, с байтовыми массивами ситуация ухудшается (длинные массивы безопасны), когда вы случайно наводите указатель мыши на параметр или свойство массива. Лучше держите мышь подальше от кода: -))

8
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: