Я обновляю свое приложение с Delphi 2007 до Delphi XE. У меня есть свой персональный компонент Socket. В новой среде (XE) она работает неправильно. Тот же самый код работает в Delphi 2007.Delphi XE и Winsock
Вот мой фрагмент кода:
uses WinSock;
procedure TForm1.GetProtocolClick(Sender: TObject);
var
ProtoEnt: PProtoEnt;
FProtocol: Integer;
begin
FProtocol := IPPROTO_TCP;
ProtoEnt := getprotobynumber(FProtocol);
if Assigned(ProtoEnt)
then ShowMessage(ProtoEnt.p_name);
end;
var
WSAData: TWSAData;
procedure Startup;
begin
if WSAStartup($0101, WSAData) <> 0
then raise Exception.Create('WSAStartup');
end;
procedure Cleanup;
begin
if WSACleanup <> 0
then raise Exception.Create('WSACleanup');
end;
initialization
Startup;
finalization
Cleanup;
end.
ProtoEnt всегда не Assigned (т.е. = ноль) !!!!!
ПОЧЕМУ?
Я схожу с ума, чтобы решить эту проблему ... Благодаря
Энцо
Пожалуйста, обновите ваш вопрос. Как бы то ни было, проблема не воспроизводится с кодом, который вы опубликовали. Обновите и исправьте свой вопрос. –