На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> как собрать 4 байта в single
    Здраствуйте!
    Кто может подсказать как собрать 4 байта которые передает прибор в одну переменную типа single в VBnet 2012? Так же нужно разделить переменную single на 4 байта.
      я попробовал вот таким образом.
      ExpandedWrap disabled
        Public Declare Function GetMem4 Lib "msvbvm60" (ByVal pSrc As Long, ByVal pDst As Long) As Long
        Private ModZ As Single
        Private ModZ1(3) As Byte
        GetMem4(ModZ1(0), ModZ)


      Но выдает ошибку
      Сообщение отредактировано: Songrim -
        ExpandedWrap disabled
          Public Declare Function GetMem4 Lib "msvbvm60" (ByRef pSrc As Any, ByRef pDst As Any) As Long
          Цитата TheTrik @
          ExpandedWrap disabled
            Public Declare Function GetMem4 Lib "msvbvm60" (ByRef pSrc As Any, ByRef pDst As Any) As Long

          Выдает что AsAny в операторах Declare не подерживается
            Цитата Songrim @
            Цитата TheTrik @
            ExpandedWrap disabled
              Public Declare Function GetMem4 Lib "msvbvm60" (ByRef pSrc As Any, ByRef pDst As Any) As Long

            Выдает что AsAny в операторах Declare не подерживается

            Какой язык программирования?
              Visual Studio 2012, Basic
                В vb.net можно объединить single с четырёхбайтовым массивом в Union.
                  Цитата Mikle @
                  В vb.net можно объединить single с четырёхбайтовым массивом в Union.

                  А как это можно сделать? Хотелось бы увидеть примеры кода.
                    У меня сейчас на компе не установлена VS, но в сети есть примеры, например:
                    https://www.vbforums.com/showthread.php?761...claration-valid
                      Цитата Mikle @
                      У меня сейчас на компе не установлена VS, но в сети есть примеры, например:
                      https://www.vbforums.com/showthread.php?761...claration-valid

                      не разобрался... Еще нашел в интернете описание класса BitConverter, вроде это подойдет, но я не могу его найти VS2012 Basic. Кто может подсказать как это сделать.
                        В любом ЯП есть конструкт "сдвиг по фазебитовый", схематично чтото типа
                        ExpandedWrap disabled
                          Private uint_iModZ As UInteger
                          Private ModZ As Single
                          Private ModZ1(3) As Byte
                          uint_iModZ = ModZ1(0) << 24 + ModZ1(1) << 16 + ModZ1(2) << 8 + ModZ1(3)
                          ModZ = CType(uint_iModZ, Single)
                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0333 ]   [ 15 queries used ]   [ Generated: 18.05.24, 22:20 GMT ]