Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Помогите! Не пойму в чем ошибка!   Найти похожие ветки 

 
_dmitry   (2003-01-22 10:55) [0]


function GetNetPath(name:string):string;
var
lpNetResource,
lpNet : PNetResource;
cbBuffer : DWORD;
dwNetType : Cardinal;
lpProviderName: Pchar;
s : widestring;
begin
result := "";
cbBuffer := 100;
dwNetType := WNNC_NET_LANMAN;
getmem(lpProviderName,cbBuffer);
if wnetgetproviderName(dwNetType,lpProviderName,cbBuffer)=0 then
begin
new(lpNetResource);
new(lpNet);
cbBuffer:=1000;
lpNetResource^.lpRemoteName := PCHAR("\\"+name);
lpNetResource^.dwType := RESOURCETYPE_ANY;
lpNetResource^.lpProvider := lpProviderName;
if wnetgetresourceparent(lpNetResource,lpNet,cbBuffer)=0 then
begin
// Функция должна возвращать это значение
// ее тип lpRemoteName: PAnsiChar
s:= lpnet^.lpRemoteName;
end;
// Но когда освобождаю пямять то возникает ошибка. Почему?
Dispose(lpNet);
Dispose(lpNetResource);
end;
freemem(lpProviderName);
result := string(s);
end;


Я прошу прощения за ламерский вопрос, ошибка, скорее всего из-за неумения пользоватся указателями. Но я перепробовал уже кучу вариантов, но понять почему так происходит не могу. :(


 
ole ©   (2003-01-23 04:56) [1]

Как тебе такой вариант?

function GetNetPath(name:string):string;
var
lpNetResource,
lpNet : NetResource;
cbBuffer : DWORD;
dwNetType : Cardinal;
lpProviderName: Pchar;
s : widestring;
begin
result := "";
cbBuffer := 100;
dwNetType := WNNC_NET_LANMAN;
getmem(lpProviderName,cbBuffer);
if wnetgetproviderName(dwNetType,lpProviderName,cbBuffer)=0 then
begin
cbBuffer:=1000;
lpNetResource.lpRemoteName := PCHAR("\\"+name);
lpNetResource.dwType := RESOURCETYPE_ANY;
lpNetResource.lpProvider := lpProviderName;
if wnetgetresourceparent(@lpNetResource,@lpNet,cbBuffer)=0 then
begin
s:= lpnet.lpRemoteName;
end;
end;
freemem(lpProviderName);
result := string(s);
end;


 
_dmitry   (2003-01-24 10:36) [2]

ole,
Огромное СПАСИБО!
Теперь все работает!



Страницы: 1 вся ветка

Текущий архив: 2003.03.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-39190
UnDISCOvery
2003-02-20 16:39
2003.03.13
А есть ли в InterBase возможность массового копирования ?


3-39157
Брат
2003-02-20 16:24
2003.03.13
Как в IB занести null в ячейку?


1-39336
Tundra
2003-02-28 17:44
2003.03.13
Как выполнить выражение содержащиеся в строке.


14-39530
RV
2003-02-25 08:54
2003.03.13
time.nist.gov порт 37 - можно узнать текущее время, нет ли в


3-39174
Kalishenko Stas
2003-02-20 16:36
2003.03.13
DOS-кие файлы и БД