[求助]:ConnectNamedPipe在Win98下面可以用嗎?
Server:===============================================
const
pipename:string='\\.\pipe\testpipe';
var
SPipeHandle:THandle;
Se:TSecurityAttributes;
WriteBuffer:DWORD;
Buffer:pchar;
begin
Se.nLength:=Sizeof(TSecurityAttributes);
Se.lpSecurityDescriptor:=nil;
Se.bInheritHandle:=True;
SPipeHandle:=CreateNamedPipe(pchar(pipename),PIPE_ACCESS_DUPLE OR FILE_FLAG_OVERLAPPED,
PIPE_TYPE_BYTE or PIPE_WAIT,2,512,512,1000,@Se);
if SPipeHandle=-1 then
raise Exception.Create('Create pipe Failed');
try
if not ConnectNamedPipe(SPipeHandle,nil) then begin
CloseHandle(SPipeHandle);
Raise Exception.Create(IntToStr(GetLastError)+'fail con');end;
Buffer:=StrAlloc(512);
Buffer:=Pchar(Memo1.Text);
WriteFile(SPipeHandle,Buffer[0],512,WriteBuffer,nil);
finally
DisConnectNamedPipe(SPipeHandle);
CloseHandle(SPipeHandle);
end;
=================================
當在Win98下執行到ConnectNamedPipe時,立即返回為False(完全沒有時間上的等待),并且
GetLastError=6(Msg:無效代碼)。在2000下無此問題。這是什么原因,是否ConnectNamedPipe在
Win98下有什么限制?