Главная страница
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.028 c
2-1132141708
Hellga
2005-11-16 14:48
2005.12.11
ресурсы в delphi


6-1125054010
Dr.Nemo
2005-08-26 15:00
2005.12.11
Скачка файла с интернета


8-1120806167
Ботвин Дмитрий
2005-07-08 11:02
2005.12.11
Вращение Bitmap-a


14-1132235339
Eugene_T
2005-11-17 16:48
2005.12.11
Установка Delphi 2005 Architect


2-1133111316
Volfram
2005-11-27 20:08
2005.12.11
TDrawGrid