Страница: 1 |
Страница: 1 |
Вопрос: Проблема с htons
Добавлено: 20.07.06 21:51
Автор вопроса: Проблема с htons | Web-сайт:
Как известно в 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 просто...
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 21.07.06 14:30
Мдя... Как говорится,
Стою на асфальте я
В лыжи обутый
Иль лыжи не едут
Иль я е@#нутый.
)