Как я понял, этот компонент дублирует код из исходников ScktSrvr.exe.
Ошибка возникает в процедуре TSocketDispatcherThread.ClientExecute, в строке Event := FTransport.GetWaitEvent, при этом вызывается метод TSocketTransport.GetWaitEvent, находящийся в модуле SConnect.pas, где и происходит сбой при выполнении комады FEvent := WSACreateEvent;
Причём WSACreateEvent объявлена как переменная типа функция и значение ей присваивается в LoadWinSock2 из модуля SConnect.
Поставив брэйкпоинты в методе LoadWinSock2, я не заметил, чтобы он был вызван.
По ходу он не вызывается, переменная остаётся пустой, и при попытке к ней обратиться и возникает тот самый Access Violation.
Теперь вот думаю, как от этой ошибки избавиться.
Буду признателен, если кто-нибудь поможет думать.
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
|