delphi中createpipe的四个参数分别是啥意思啊?
delphi中createpipe不是有四个参数么?Createpipe(A,B,@C,D);那么四个参数分别是啥意思啊,第三个为啥有一个@号呢?谢谢!to2楼我需要的是...
delphi中createpipe不是有四个参数么?Createpipe(A, B, @C, D);
那么四个参数分别是啥意思啊,第三个为啥有一个@号呢?
谢谢!
to 2楼
我需要的是对该问题的正面回答,既然我不懂四个参数分别的含义,那么你拿这段代码给我看又有何用?
我需要真正了解delphi的朋友对我进行回答,而非某个对delphi了解还不如我深的人从百度上随便搜一段代码糊弄我。 展开
那么四个参数分别是啥意思啊,第三个为啥有一个@号呢?
谢谢!
to 2楼
我需要的是对该问题的正面回答,既然我不懂四个参数分别的含义,那么你拿这段代码给我看又有何用?
我需要真正了解delphi的朋友对我进行回答,而非某个对delphi了解还不如我深的人从百度上随便搜一段代码糊弄我。 展开
4个回答
展开全部
BOOL CreatePipe(
PHANDLE hReadPipe,
PHANDLE hWritePipe,
LPSECURITY_ATTRIBUTES lpPipeAttributes,
DWORD nSize
);
这是一个windows API,和delphi没有关系
第一个参数:接受管道的读句柄的变量
第二个:接受管道写句柄的变量
第三个是指向一个管道属性数据结构的指针,也就是结构体首地址,
在delphi中@是取变量首地址的操作符
第四个是管道缓冲的大小
查MSDN,有更详细的说明
PHANDLE hReadPipe,
PHANDLE hWritePipe,
LPSECURITY_ATTRIBUTES lpPipeAttributes,
DWORD nSize
);
这是一个windows API,和delphi没有关系
第一个参数:接受管道的读句柄的变量
第二个:接受管道写句柄的变量
第三个是指向一个管道属性数据结构的指针,也就是结构体首地址,
在delphi中@是取变量首地址的操作符
第四个是管道缓冲的大小
查MSDN,有更详细的说明
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
这是一段关于delphi中createpipe的例子,看一下吧!
function WinExecAndWait32(FileName:String; Visibility : integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := -1 { pointer to PROCESS_INF }
else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;
function WinExecAndWait32(FileName:String; Visibility : integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := -1 { pointer to PROCESS_INF }
else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CreatePipe()的函数原型为:
BOOL CreatePipe(PHANDLE hReadPipe, // 指向读句柄的指针
PHANDLE hWritePipe, // 指向写句柄的指针
LPSECURITY_ATTRIBUTES lpPipeAttributes, // 指向安全属性的指针
DWORD nSize // 管道大小
);
CreatePipe函数创建匿名管道,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。
函数说明:
说明
创建一个匿名管道
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
phReadPipe Long,指定一个 变量,设为管道读入(输出)端的一个句柄
phWritePipe Long,指定一个 变量,设为管道写入(输入)端的一个句柄
lpPipeAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或者传递零值(将参数声明为ByVal As Long,并传递零值),以便使用不允许继承的一个默认描述符
nSize Long,管道缓冲区的建议大小。零表示用默认值
注解
匿名管道不允许异步操作,所以如在一个管道中写入数据,且缓冲区已满,那么除非另一个进程从管道中读出数据,从而腾出了缓冲区的空间,否则写入函数不会返回
BOOL CreatePipe(PHANDLE hReadPipe, // 指向读句柄的指针
PHANDLE hWritePipe, // 指向写句柄的指针
LPSECURITY_ATTRIBUTES lpPipeAttributes, // 指向安全属性的指针
DWORD nSize // 管道大小
);
CreatePipe函数创建匿名管道,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。
函数说明:
说明
创建一个匿名管道
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
phReadPipe Long,指定一个 变量,设为管道读入(输出)端的一个句柄
phWritePipe Long,指定一个 变量,设为管道写入(输入)端的一个句柄
lpPipeAttributes SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或者传递零值(将参数声明为ByVal As Long,并传递零值),以便使用不允许继承的一个默认描述符
nSize Long,管道缓冲区的建议大小。零表示用默认值
注解
匿名管道不允许异步操作,所以如在一个管道中写入数据,且缓冲区已满,那么除非另一个进程从管道中读出数据,从而腾出了缓冲区的空间,否则写入函数不会返回
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询