Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.042 c
2-1132683001
DillerXX
2005-11-22 21:10
2005.12.11
RegQueryValueEx


2-1132786223
Mischa_M
2005-11-24 01:50
2005.12.11
Как считать файл по битам ?


4-1128428489
yanker
2005-10-04 16:21
2005.12.11
размер в памяти


4-1128789954
capkoh
2005-10-08 20:45
2005.12.11
Куда девается сообщение клавиатуры?


2-1132658005
barakuda
2005-11-22 14:13
2005.12.11
Image +