Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.046 c
15-1144160567
Volf_555
2006-04-04 18:22
2006.04.23
Как подлкючить человека? Живёт от меня на расстоянии ~130 м


3-1141392474
ancot
2006-03-03 16:27
2006.04.23
Не отробатывает IsEmpty в TQuery


15-1144163686
RDA
2006-04-04 19:14
2006.04.23
Запуск Microsoft Word 2003 при установленном Microsoft Visual C#


6-1136928251
HITMAN
2006-01-11 00:24
2006.04.23
Делаю так а почему то файл приходит весом 0 кб В чём ошибка???


1-1142536791
TStas
2006-03-16 22:19
2006.04.23
А можно серверу сценариев SCRiptHost передать не ...