为了实现共享的设置,我用了下面的代码,可在运行的时候却出现了错误的提示,错误的提示为“链接文件PROJECT1。EXE到不存在的输出 NETAPI32。DLL:NetShareAdd”,请问怎么解决。代码如下:unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
PUSER_INFO_1 = ^USER_INFO_1;
USER_INFO_1 = record
shi2_netname: PWideChar;
shi2_type: DWORD;
shi2_re: PWideChar;
shi2_permissions: DWORD;
shi2_max_uses: DWORD;
shi2_current_uses: DWORD;
shi2_path: PWideChar;
shi2_passwd: PWideChar;
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const
STYPE_DISKTREE = 0;
ACCESS_READ = 0;
function NetShareAdd(ServerName: PWideChar; Level: DWORD; Buf: Pointer; Parm_err: DWORD):LongInt; stdcall; external 'netapi32.DLL'
function NetShareDel(ServerName: PWideChar; NetName: PWideChar; Revered: DWORD): LongInt; stdcall; external 'netapi32.dll';
function NetShareGetInfo(SeverName, NetName: PWideChar; Level: DWORD; Buf: Pointer): LongInt; stdcall; external 'netapi32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
Buf: PUSER_INFO_1;
begin
GetMem(Buf, Sizeof(Buf));
with Buf^ do
begin
Buf.shi2_netname := 'hello';
Buf.shi2_type := STYPE_DISKTREE;
Buf.shi2_re := 'This is Re';
Buf.shi2_permissions := ACCESS_READ;
Buf.shi2_max_uses := 5;
Buf.shi2_current_uses := 1;
Buf.shi2_path := 'C:\My Documents';
Buf.shi2_passwd := nil;
end; // 把此处的XXX替换成你网络标志名
NetShareAdd('XXX', 2, Pointer(Buf), 0);
FreeMem(Buf);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin // 把此处的XXX替换成你网络标志名
NetShareDel('XXX', 'hello', 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := '增加共享';
Button2.Caption := '取消共享';
end;
end.
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
PUSER_INFO_1 = ^USER_INFO_1;
USER_INFO_1 = record
shi2_netname: PWideChar;
shi2_type: DWORD;
shi2_re: PWideChar;
shi2_permissions: DWORD;
shi2_max_uses: DWORD;
shi2_current_uses: DWORD;
shi2_path: PWideChar;
shi2_passwd: PWideChar;
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const
STYPE_DISKTREE = 0;
ACCESS_READ = 0;
function NetShareAdd(ServerName: PWideChar; Level: DWORD; Buf: Pointer; Parm_err: DWORD):LongInt; stdcall; external 'netapi32.DLL'
function NetShareDel(ServerName: PWideChar; NetName: PWideChar; Revered: DWORD): LongInt; stdcall; external 'netapi32.dll';
function NetShareGetInfo(SeverName, NetName: PWideChar; Level: DWORD; Buf: Pointer): LongInt; stdcall; external 'netapi32.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
Buf: PUSER_INFO_1;
begin
GetMem(Buf, Sizeof(Buf));
with Buf^ do
begin
Buf.shi2_netname := 'hello';
Buf.shi2_type := STYPE_DISKTREE;
Buf.shi2_re := 'This is Re';
Buf.shi2_permissions := ACCESS_READ;
Buf.shi2_max_uses := 5;
Buf.shi2_current_uses := 1;
Buf.shi2_path := 'C:\My Documents';
Buf.shi2_passwd := nil;
end; // 把此处的XXX替换成你网络标志名
NetShareAdd('XXX', 2, Pointer(Buf), 0);
FreeMem(Buf);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin // 把此处的XXX替换成你网络标志名
NetShareDel('XXX', 'hello', 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := '增加共享';
Button2.Caption := '取消共享';
end;
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货