Текущий архив: 2005.12.11;
Скачать: CL | DM;
ВнизКак разрешить общий доступ к диску? Найти похожие ветки
← →
aglar (2005-11-21 18:30) [0]Есть кусок кода, не знаю на чем написан. Помогите перевести на язык Дельфи (что-то мне подсказывает, что везде где видно "50" нужно писать "502") :
--------
share_info_50 shinfo50;
ZeroMemory(&shinfo50,sizeof(shinfo50));
shinfo50.shi50_type=STYPE_DISKTREE;
shinfo50.shi50_flags=SHI50F_FULL | SHI50F_SYSTEM| SHI50F_PERSIST;
shinfo50.shi50_remark="";
// Расшариваем 1-й диск
lstrcpyn(shinfo50.shi50_netname,"TEMP1$",LM20_NNLEN+1);
shinfo50.shi50_path="C:\\";
NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50));
// Расшариваем 2-й диск
lstrcpyn(shinfo50.shi50_netname,"TEMP2$",LM20_NNLEN+1);
shinfo50.shi50_path="D:\\";
NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50));
// Расшариваем 3-й диск
lstrcpyn(shinfo50.shi50_netname,"TEMP3$",LM20_NNLEN+1);
shinfo50.shi50_path="E:\\";
NetShareAdd(NULL,50,(char*)&shinfo50,sizeof(struct share_info_50));
// P.S. Все это только для Win95/98/Me. Для NT нужно немного
// модифицировать.
-----
Кстати если кто разобрался, как это модифицировать для работы в XP\NT?
← →
clickmaker © (2005-11-21 18:37) [1]
> Есть кусок кода, не знаю на чем написан
на Cи.
заменяешь = на :=
@ на &
NULL на nil
| на or
← →
clickmaker © (2005-11-21 18:37) [2]наоборот, конечно же
& на @
← →
aglar (2005-11-22 13:12) [3]вот что получилось, но компилятор на это жутко ругается:
unit ShareDisk;
interface
uses
ShellApi, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
shinfo50: share_info_502;
begin
ZeroMemory(@shinfo50,sizeof(shinfo50));
shinfo50.shi502_type:=STYPE_DISKTREE;
shinfo50.shi502_flags:=SHI502F_FULL or SHI502F_SYSTEM or SHI502F_PERSIST;
shinfo50.shi502_remark:="";
lstrcpyn(shinfo50.shi502_netname,"TEMP1$",LM20_NNLEN+1);
shinfo50.shi502_path:="C:\\";
NetShareAdd(nil,502,(char*)@shinfo50,sizeof(struct share_info_502));
lstrcpyn(shinfo50.shi50_netname,"TEMP2$",LM20_NNLEN+1);
shinfo50.shi50_path:="D:\\";
NetShareAdd(nil,502,(char*)@shinfo50,sizeof(struct share_info_502));
lstrcpyn(shinfo50.shi50_netname,"TEMP3$",LM20_NNLEN+1);
shinfo50.shi50_path:="E:\\";
NetShareAdd(nil,502,(char*)@shinfo50,sizeof(struct share_info_502));
end;
end.
-----
Что я делаю не так?
← →
clickmaker © (2005-11-22 13:18) [4]не знаю как компилятор, но я бы ругался на (char*)@shinfo50
нет такой конструкции и типа в паскале. Если уж приводить тип, то так: PChar(@shinfo50). Хотя в данном случае, скорей всего достаточно просто shinfo50
PS. Признак хорошего тона - не писать фраз типа "компилятор на это жутко ругается", а текст самого ругательства
← →
Anatoly Podgoretsky © (2005-11-22 13:44) [5]aglar (22.11.05 13:12) [3]
Точно ругается, матом?
← →
Не молодой (2005-11-22 14:30) [6]Здесь все это есть:
http://www.delphimaster.ru/articles/netmon/index.html
Страницы: 1 вся ветка
Текущий архив: 2005.12.11;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.041 c