![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| ASGDeveloper |
|
|||
|
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: нет Всего: 1 |
Есть у меня два заголовочных файла - для WinSock и WinSock 2.
В одном для функции connect используется TSockAddr, во втором - PSockAddr. Моя прога перехватывает запросы на соединение и перенаправляет трафик на порт-маппер. При модификации SockAddr для wsock32.dll работают оба варианта: 1) SockAddr._переменная_ 2) SockAddr^._переменная_ Для ws2_32.dll - аналогично. Почему? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
PSockAddr, как видно из названия - это указатель на TSockAddr.
Просто физически варовские переменные - это указатель. Поэтому, если для API функции создать описание с var, то нужно её передавать переменную, а не указатель - функция сама превратит его в указатель. Если она без вара, то нужно передавать указатель. Далее. Если функция с варом, но передаём ей указатель, то он автоматически преобразуется компилятором в переменную. Поэтому можно указывать, как переменную, так и указатель на неё. Подобное поведение компилятора широко используется в библиотеке KOL. В которой все объекты - это указатели, но обращение к ним идёт, как к переменным - компилятор автоматом перетранслирует это в "правильный" код. Добавлено @ 00:28 Пример: TPoint.X идентично PPoint.X, хотя правильно было бы написать PPoint^.X. Но компилятор распознаёт такое поведение и транслирует его, т.к. понимает, что обращение к полям указателя - нереально, и программист имел ввиду поле объекта/структуры, на которую указывает указатель. |
|||
|
||||
| ASGDeveloper |
|
|||
|
developer ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 1.4.2006 Репутация: нет Всего: 1 |
Большое спасибо за пояснение. Вопрос закрыт.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |