Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Проблема с htons Добавлено: 20.07.06 21:51  

Автор вопроса:  Проблема с htons | Web-сайт: zloy.org
Как известно в vb(6.0) integer поддерживает диапозон от -32k до +32k

Код:
'сама структура
Private Type sockaddr_in
    sin_family As Integer
    sin_port As Integer
    sin_addr As Long
    sin_zero(1 To 8) As Byte
End Type

'ф-ия
Private Declare Function htons Lib "ws2_32.dll" (ByVal hostshort As Long) As Long

'вызов
cStruct.sin_port = htons(port)

Дело в том что htons возвращает значения от 0 до 65k, т.е. shor integer

можно было бы сохранять как long (4 байта), но в структуре должно быть ровно 2 байта

подозреваю решение с помощью copymemory, но честно говоря никогда не использовал эту ф-ию

У кого есть соображения на этот счёт?

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 20.07.06 22:29
Когда-нибудь ты вырастешь и поймёшь, чем число отличается от интерпретации числа, а оно, в свою очередь, от строкового представления.
И тогда проблема как-то сама исчезнет, даже без copymemory... и останется только оператор присваивания... но это будет нескоро...

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 20.07.06 22:45
задекларируй As Integer просто...

Private Declare Function htons Lib "ws2_32.dll" (ByVal hostshort As Integer) As Integer

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 21.07.06 14:30
Мдя... Как говорится,

Стою на асфальте я
В лыжи обутый
Иль лыжи не едут
Иль я е@#нутый.

:))

Ответить

Страница: 1 |

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



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