Страница: 1 |
Страница: 1 |
Вопрос: рантайм дебаг , структуры
Добавлено: 30.09.05 13:36
Автор вопроса: Deus
два горячих вопроса
как в вб реализовать
а) сишный тип структура
б) искуственно рантайм отладку
собснно и все пасиб.
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 30.09.05 13:59
а) Это с union'ами что ли? Или что?
б) Runtime Debug? прикольно Могу только предположить App.StartLogging
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 30.09.05 15:23
1. type?
2. есть программки вроде error handler (Add-In для IDE VB6) что может автоматизировать некоторые вещи...
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 30.09.05 15:33
Я так понял имеется ввиду union. Как в VB это записать - ИМХО, не реально. Как Variant если...
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 30.09.05 19:06
Несложно, создать класс, который по property будет менять структуру согласно union
Номер ответа: 5
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #5
Добавлено: 02.10.05 00:35
Я знаю как сделать что-то похожее на Union с массивом. Например, имеется массив Long
Теперь надо из него сделать массив RGBQUAD
Самый тупой способ - CopyMemory. Но есть и другой, который позволит обойти копирование данных.
Public Declare Function AryPtr Lib "msvbvm60.dll" Alias "VarPtr" (Ary() As Any) As Long
Public Sub SwapArys(ByVal ptrAry1 As Long, ByVal ptrAry2 As Long)
Dim ptrStruc1 As Long, ptrStruc2 As Long
CopyMemory ptrStruc1, ByVal ptrAry1, 4
CopyMemory ptrStruc2, ByVal ptrAry2, 4
CopyMemory ByVal ptrAry1, ptrStruc2, 4
CopyMemory ByVal ptrAry2, ptrStruc1, 4
End Sub
Чтобы использовать данные в RGBQUAD-ах, делаете следующее:
Dim Ary() as long
Dim AryRGB() as RGBQUAD
Redim Ary(0 to 1)
Ary(0)=&HFF6611&
SwapArys AryPtr(Ary), AryPtr(AryRGB)'меняем указатели.
debug.print AryRGB(0).rgbRed
SwapArys AryPtr(Ary), AryPtr(AryRGB)'Все как было
Номер ответа: 6
Автор ответа:
Deus
Вопросов: 3
Ответов: 6
Профиль | | #6
Добавлено: 03.10.05 15:07
sne yess type
like:
struct(a:"adfasd",b:2325,c:array(1,2,3));
LamerOnLine error handlers не катит так как я хочу ешсче и менять значение переменных...
тоесть я понял (как и предполагалось в начале) чтобы создать структуру разнотипных данных необходимо завети несколько массивов + массив имен и между ними указатели менять...
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 04.10.05 17:52
Не парься, юзай варианты.
Option Explicit
Private Type Deus
a As Variant
b As Variant
c As Variant
End Type
Private Sub Form_Load()
Dim DeusVar As Deus
DeusVar.a = "adfasd"
DeusVar.b = 2325
DeusVar.c = Array(1, 2, 3)
End Sub
Тип переменной всегда узнать сможешь, если понадобится. Чего еще недо?
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 04.10.05 21:34
Наверно, нужно работать с внешними программами, которые принимают/возвращают union