Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2009, 09:58   #1
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию Общий вопрос по VB.Net

Здравствуйте господа программисты !

Один из форумчан указал этот раздел, где можно запостит указанную мною тему.
--------------
Платформа:
Visual Studio 2005 язык Visual Basic

Вопрос 1:
Имеется ли в данной платформе и языке понятие пользовательский тип. Пересмотрел все MSDN ничего похожего не нашел, может кто подскажет как обьявить подобные типы, для многократного использования в моих функциях и процедурах (примеры Паскаль):

type
TMyType1 = array(0..31) of Cardinal;
TMyType2 = -16..16;
TMyType3 = Integer;

Контекст использования (VB.Net)

Function (ByRef A as MyType1, ByVal B as MyType2, Optional ByVal Cas MyType3 = 0) as string

Вопрос 2:

Можно ли в этой же платформе, каким либо образом объявить массив фиксированной дины в структурах:

Structure MyStructure
Public Filed1 as integer
Public Filed2 ????? (прототип array[0..7] of double)
......
End Structure


Буду благодарен всем откликнувшимся.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 05.07.2009 в 10:02.
JUDAS вне форума Ответить с цитированием
Старый 05.07.2009, 16:35   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

В этом языке есть классы. Они более чем удовлетворяют вашу просьбу.
Простой пример:
Код:
module prj1
  Dim count as integer
  class myclass 
    res as variant
    sub proc11
      dim i as long
      i = 3+(43-rer)*2
    end sub
  end class
  function func1(key as myclass)as variant
        Select Case key.res
            Case 3 To 4 : func1 = 1
            Case Is > 50 : func1 = 2
            Case Else : func1 = 3
        End Select
    End Function
end module
Пример не несет в себе никакой смысловой нагрузки, просто показывает, как работает требуемая вам конструкция.
MaTBeu вне форума Ответить с цитированием
Старый 05.07.2009, 16:52   #3
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Спасибо большое !
Этот вариант не подходит по простой причине:
Сколько байт будет передаватся во внешнюю Api функцию если использовать класс 4 (указатель), или его полный размер с содержимым ?
Пробовал - передается только 4 байта.

Уже начал выкручиватся методом создания библиотеки "прослойки" к которой идет обращение с Vb.Net, а та в свою очередь, выуживая информацию с переменных типа Variant, формирует полноценные массивы которые корректно обрабатываються в оконечной DLL.

-----------
Еще один маленький вопросик - каков прототип функции SizeOf ?
в паскале :
type
MyRecord = packed record
rSize : integer;
rvalue1 : Cardinal;
rValue2 : double;
end;

var Sz : integer;
Sz := SizeOf(MyRecord) ; // будет равнятся 16 int(4)+card(4)+double(8) = 16

Необходимо подсчитать реальный размер структуры перед передачей ее, во внешнюю библиотеку


Еще раз спасибо.
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 05.07.2009 в 16:58.
JUDAS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос к тем, кто имеет представление о PHP, JSP, ASP, ASP.NET child_of_july Помощь студентам 0 07.06.2008 00:25
Общий вопрос Stilus Помощь студентам 0 05.06.2008 19:39
Общий вопрос с модулями! Манжосов Денис :) Общие вопросы Delphi 2 27.04.2008 19:58
Общий доступ в интернет HAMMAN Свободное общение 1 06.08.2007 20:41