Вниз
Скачать: CL | DM;

Еще один вопрос про DLL   Найти похожие ветки 

← →
Новичоккк   (2006-04-01 18:04) [0]

Возможно ли как-нибудь из DLL узнать имя файла этой самой библиотеки?

P.S. paramstr(0) возвращает имя файла программы, загрузившей DLL"ку :(


← →
Новичоккк   (2006-04-01 19:16) [1]

UP


← →
Knight ©   (2006-04-01 19:21) [2]

Спросить у программы, загрузившей DLL"ку...


← →
Piter ©   (2006-04-01 19:35) [3]

аля:

function GetName: string;
const
 cLenBuf = 500;
var
 Buf: array[0..cLenBuf] of char;
begin
 SetLength(s, 500);
 if GetModuleFileName(hinstance, @Buf[0], cLenBuf) = 0 then
   Result := ""
 else
   Result := Buf;
end;


← →
Piter ©   (2006-04-01 19:36) [4]

писал с руки, так что может ошибки есть


← →
Новичоккк   (2006-04-01 20:03) [5]

2Piter
Спасибо. В итоге у меня получилось вот так:
   function GetPath: PChar;
   var
     buf: array [0..1023] of AnsiChar;
   begin
    if GetModuleFileName(hinstance, @Buf[0], length(buf)) = 0 then
      Result := ""
    else
      Result := PChar(@Buf[0]);
   end;


← →
begin...end ©   (2006-04-01 21:10) [6]

> Новичоккк   (01.04.06 20:03) [5]

Плохо получилось.

> var
>   buf: array [0..1023] of AnsiChar;
> ...
> Result := PChar(@Buf[0]);

В последней строке в результат записывается адрес локальной переменной Buf, которая после выхода из функции перестаёт существовать.

И поэтому вполне возможно, что через некоторое время после выхода из функции никакой строки по этому адресу уже не будет.

P.S. И 1023 — это многовато. MAX_PATH будет вполне достаточно.


← →
Piter ©   (2006-04-01 22:52) [7]

Новичоккк   (01.04.06 20:03) [5]

а чем тебя мой вариант не строил? Нафига в Delphi использовать PChar, когда там есть такой замечательный тип как String... Не вижу никакого смысла в PChar внутри Delphi использовать, глупости.


← →
07BB   (2006-04-03 07:59) [8]

Piter ©   (01.04.06 22:52) [7]
Для использовании API функций


← →
Piter ©   (2006-04-03 20:45) [9]

07BB   (03.04.06 7:59) [8]

и с каких пор для API функций нельзя использовать string?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.037 c
6-1136898146
Wiz@rd
2006-01-10 16:02
2006.04.23
шЫрина канала...


15-1143799822
Jeer
2006-03-31 14:10
2006.04.23
Мискрософт вот из госструктур !


2-1144495231
ctudent
2006-04-08 15:20
2006.04.23
ПОЖАЛУЙСТА ПОМОГИТЕ!!!


8-1132770476
TG
2005-11-23 21:27
2006.04.23
Изменение размера изображения


2-1144595174
Radagast
2006-04-09 19:06
2006.04.23
Помогите, пожалуйста, разобраться с объектами




   Наверх