请看我的NetServerTransportEnum哪里用错了?急.哪位给个解答,可以再加分 (50分)

  • 主题发起人 主题发起人 forza
  • 开始时间 开始时间
F

forza

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var nStatus, error : DWORD;
ipaddress, str : string;
servername : pwidechar;
er, tr, resume : dword;
aNetRes : TNETRESOURCE;
lpbuffer : pointer;
begin
er:=0; tr := 0; resume:=0;
IpAddress := edit1.Text ;
fillchar(aNetRes,sizeof(TNetResource),0);
anetRes.dwScope := RESOURCE_CONNECTED;
anetRes.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;
aNetRes.dwType := RESOURCETYPE_ANY;
aNetRes.lpLocalName := '';
aNetRes.lpProvider := '';
str:='//'+ipaddress+'/ipc$';
aNetRes.lpRemoteName :=pchar(str);
error := WNetAddConnection2(anetres,'','',0);
ipaddress:='//'+edit1.Text ;
getmem(servername,sizeof(widechar)*(length(ipaddress)+1));
stringtowidechar(ipaddress,servername,sizeof(char)*(length(ipaddress)+1));

if error <> NO_ERROR then
begin
memo1.Lines.Add('不能建立空连接');
exit;
end
else
begin
memo1.Lines.Add('建立空连接');
nStatus := NetServerTransportEnum(servername, 0, lpbuffer, $ff, er, tr, @resume);
if nStatus = 0 then
memo1.Lines.Add('传输');
end;

error := WNetCancelConnection2(pchar(str),0,TRUE);
if error <> NO_ERROR then
memo1.Lines.Add('空连接释放失败');
end;
在unit2中是这样的:
unit Unit2;
interface
uses Windows;
function NetServerTransportEnum(servername: LPCWSTR; level: DWORD; bufptr: Pointer;
prefmaxlen: DWORD; var entriesread: DWORD; var totalentries: DWORD;
resumehandle: PDWORD): DWORD; stdcall;
implementation
function NetServerTransportEnum;external 'netapi32.dll' name 'NetServerTransportEnum';

end.
程序运行中,建立连接是没有问题的,但在NetServerTrasportEnum中,总是返回非零值(返回值是3221225477),何解?
拜托给个解答。

另外能不能给个NetSessionEnum,以及NetRemoteTOD使用的例子。我在delphi6中使用时总是有错,sigh

急呀,真的。
 
因为是从C语言改过来的,所以不知道是不是数据类型有错误,还是别的,但我也对照MSDN看过了。
还是不知哪儿有问题,sigh
 
后退
顶部