Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

bind error   Найти похожие ветки 

 
Wiz@rd   (2005-10-12 11:53) [0]

При вызове функции bind в из заинекченной dll"ки происходит фатальная ошибка, хотя тот же самый код в обычной программе работает без сбоев. Пробовал WinSock и WinSock2


 
Digitman ©   (2005-10-12 11:55) [1]


> происходит фатальная ошибка


это какая же ?


> Пробовал WinSock и WinSock2


попробуй еще WinSock3..WinSock354634343543 ... как только появятся) ..
или таки сподобься уже ДЕТАЛЬНО описать проблему.


 
Wiz@rd   (2005-10-12 11:59) [2]

function FindBindPort: Word;
var
 i: Word;
 srv_address: PSockAddr;
 sock: TSocket;
begin
 Result := 0;
 sock := socket(AF_INET, SOCK_STREAM, 0);
 if sock = INVALID_SOCKET then
   Exit;
 GetMem (srv_address, SizeOf (srv_address^));
 ZeroMemory (srv_address, SizeOf (srv_address^));
 srv_address.sin_family := AF_INET;
 srv_address.sin_addr.s_addr := INADDR_ANY;
 for i := gPortRange.First to gPortRange.Last do
 begin
   srv_address.sin_port := htons(i);
   if bind(sock, srv_address, SizeOf(srv_address)) <> SOCKET_ERROR then {вот тут при использовании в dll процесс приходит к аварийному завершению}
   begin
     closesocket(sock);
     Result := i;
     Exit;
   end;
 end;
end;

ЗЫ. Просьба отвечать по делу


 
Digitman ©   (2005-10-12 12:33) [3]


> Просьба отвечать по делу


ну прямо таки прокурор)

ты справку читал ?

For TCP/IP, if the port is specified as zero, the service provider will assign a unique port to the application with a value between 1024 and 5000

и к чему эти выкрутасы с циклом ?

система и без них найдет своб.порт в упомянутом диапазоне.

вероятность того, что в этом диапазоне не найдется нит одного своб.порта, весьма и весьма мала.


> вот тут при использовании в dll процесс приходит к аварийному
> завершению


с каким же сообщением ?

хочешь сказать, что "крах процесса" происходит при первой же попытке вызова bind() и до возврата из этой ф-ции даже и дело не доходит ?


 
Wiz@rd   (2005-10-12 12:42) [4]

Дело в специфики приложения: если это юзать в обычной проге то всё ok, другое дело в dll которую заинектил


 
Digitman ©   (2005-10-12 12:44) [5]


> Wiz@rd   (12.10.05 12:42) [4]


я тебе задал вопросы, от ответа на которые немало зависит и решение.

так что "просьба отвечать по делу", а не лить воду про какие-то ДЛЛ ..

API-ф-ция - она и в Африке API-ф-ция.


 
Владислав ©   (2005-10-12 12:53) [6]


> bind(sock, srv_address, SizeOf(srv_address))


Интересно, чему равен SizeOf(srv_address)?..


 
Wiz@rd   (2005-10-12 12:55) [7]

SizeOf (srv_address^));
с этим проблем нет, дело именно в bind


 
Digitman ©   (2005-10-12 13:01) [8]


> дело именно в bind


вот и рассказывай давай, что там за "дело" - выполняется ф-ция до конца или крах процесса происходит именно вов ремя выполнения ф-ции при таком-то по порядку ее вызове.


 
Wiz@rd   (2005-10-12 13:44) [9]

Я немогу протестить что там и почему т.к. исполняется это в dll, которая в чужом процессе, exception просто говорит адрес ошибки и всё


 
Digitman ©   (2005-10-12 13:59) [10]


> немогу протестить что там и почему т.к. исполняется это
> в dll, которая в чужом процессе


не ври.

никого тут не интересует, "чужой" или "свой" процесс, речь идет о работоспособности твоего кода в ЛЮБЫХ предполагаемых тобой условиях.

сделай тестовое приложение (свое), вызови там свою ф-цию из своей же ДЛЛ и трассируй/тестируй/отлаживай ее вдоль и поперек !


 
atruhin ©   (2005-10-12 17:19) [11]

Да господи! Ведь ошибку уже показали!
>> bind(sock, srv_address, SizeOf(srv_address))
>> Интересно, чему равен SizeOf(srv_address)?..
bind(sock, srv_address, SizeOf(srv_address))


 
Digitman ©   (2005-10-12 17:56) [12]


> atruhin ©   (12.10.05 17:19) [11]


нет, тут самое интересное другое - сей "фрукт" утверждает. что эта (одна и та же !) лажа с разыменованием якобы работает в ехе-проекте, но якобы не работает в dll-проекте)

и при том , понимаете ли, "по делу" изволит требовать) ..



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
14-1135887087
Труп Васи Доброго
2005-12-29 23:11
2006.01.22
Радионаушники


2-1136622436
psa247
2006-01-07 11:27
2006.01.22
FreeLibrary


2-1136542852
pvm
2006-01-06 13:20
2006.01.22
PChar в DLL


2-1136673586
KvORubin
2006-01-08 01:39
2006.01.22
Мастера ХЕЛП !!! Как получить список имён файлов из каталога???


2-1136310684
Игорь новый
2006-01-03 20:51
2006.01.22
как начать изучать delphi.?