Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 30.09.05 19:06
Несложно, создать класс, который по property будет менять структуру согласно union

Ответить

Номер ответа: 5
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #5
Добавлено: 02.10.05 00:35

Я знаю как сделать что-то похожее на Union с массивом. Например, имеется массив Long
Dim Ary() as long

Теперь надо из него сделать массив RGBQUAD
Dim Ary2 as 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-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 04.10.05 21:34
Наверно, нужно работать с внешними программами, которые принимают/возвращают union :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам