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

Вниз

Выявить библиотеки, к которым обращается проект,   Найти похожие ветки 

 
Денис   (2005-07-05 01:55) [0]

Дописал я одну свою прогу - у меня работает нормально. Переслал другу - у него выдает ошибки.
Ещё не знаю что именно за сообщения, но подозреваю, что не хватает ему каких нибудь библиотек, из тех, что мне Делфи дружески накидал в систему. Возможно.
Так вот, как же выявить все библиотеки, к которым обращается проект, и ,ещё важнее,-  как их грамотно перенести на другой комп?


 
Юрий Зотов ©   (2005-07-05 02:03) [1]

> как же выявить все библиотеки, к которым обращается проект

Запустите программу из-под Delphiи в ее меню выберите
View | Debug windows | Modules

Получите полный список всех DLL и прочих модулей, загруженных программой в данный момент.

> как их грамотно перенести на другой комп?

Те, которые на другом компе уже есть, переносить не надо, потому что они могут зависеть от версии системы. Те, которых нет, надо просто записать в каталог самой программы или в любой каталог, доступный через переменную системного окружения Path.


 
Денис   (2005-07-06 06:22) [2]

Спасибо огромное.
А если ненароком продублировать в каталоге программы системную библиотеку, каковы могут быть последствия?


 
-=XP=- ©   (2005-07-06 07:14) [3]

каковы могут быть последствия?

Переслал другу - у него выдает ошибки.


 
Digitman ©   (2005-07-06 08:26) [4]


> Денис   (06.07.05 06:22) [2]


> продублировать в каталоге программы .. библиотеку


это еще надо умудриться - создать в одном и том же каталоге два файла с одинаковыми именами и расширениями


 
Денис   (2005-07-07 01:17) [5]


> > продублировать в каталоге программы .. библиотеку
>
>
> это еще надо умудриться - создать в одном и том же каталоге
> два файла с одинаковыми именами и расширениями

А кто сказал об одном и том же каталоге?
Я говорю про каталог программы и системный каталог.


> каковы могут быть последствия?
>
> Переслал другу - у него выдает ошибки.

Напрасно скалитесь, я это предположил , но пока не совершал. :-)


 
Digitman ©   (2005-07-07 08:44) [6]


> Денис   (07.07.05 01:17) [5]


> А кто сказал об одном и том же каталоге?
> Я говорю про каталог программы и системный каталог.


"Ты сказал !"(с)

цитирую :


> ненароком продублировать в каталоге программы


как ты сказал, так я тебя и понял .. ибо речи о сист.каталоге и не было ..

ну а от того что, скажем, файл rtl70.bpl будет присутствовать и в каталоге программы и в сист.каталоге, ничего страшного ровным счетом не произойдет : система будет искать этот файл сначала в текущем каталоге, затем (если не нашла) - в системном, затем (если и там не нашла) - в путях, прописанных в SET PATH ... первый же найденный и будет пытаться использовать ...


 
Денис   (2005-07-07 20:39) [7]


>  в путях, прописанных в SET PATH

А можно поподробнее насчёт этого SET PATH .
Это что переменная?
Что значит "переменная системного окружения Path"?


 
begin...end ©   (2005-07-07 20:42) [8]

> Денис   (07.07.05 20:39) [7]
> Что значит "переменная системного окружения Path"?

В XP: Панель управления -> Система -> Дополнительно -> Переменные среды.
Однако эти переменные могут быть изменены для конкретного процесса (с помощью SetEnvironmentVariable).


 
Денис   (2005-07-08 05:29) [9]


> Что значит "переменная системного окружения Path"?
>
> В XP: Панель управления -> Система -> Дополнительно -> Переменные
> среды.
> Однако эти переменные могут быть изменены для конкретного
> процесса (с помощью SetEnvironmentVariable).

О, спасибо!
А я тут и код надыбал!

Выставить системные переменные среды

function SetGlobalEnvironment(const Name, Value: string;
  const User: Boolean = True): Boolean;
resourcestring
  REG_MACHINE_LOCATION = "SystemCurrentControlSetControlSession ManagerEnvironment";
  REG_USER_LOCATION = "Environment";
begin
  with TRegistry.Create do
    try
      if User then { User Environment Variable }
        Result := OpenKey(REG_USER_LOCATION, True)
      else { System Environment Variable }
      begin
        RootKey := HKEY_LOCAL_MACHINE;
        Result  := OpenKey(REG_MACHINE_LOCATION, True);
      end;
      if Result then
      begin
        WriteString(Name, Value); { Write Registry for Global Environment }
        { Update Current Process Environment Variable }
        SetEnvironmentVariable(PChar(Name), PChar(Value));
        { Send Message To All Top Window for Refresh }
        SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar("Environment")));
      end;
    finally
      Free;
    end;
end; { SetGlobalEnvironment }



 
Денис   (2005-07-08 05:36) [10]


> могут быть изменены для конкретного процесса

А что значит для конкретного процесса ?
Разве этот Path не включает все возможные пути для любых процессов?


 
Денис   (2005-07-08 05:37) [11]

Получение переменных среды


procedure GetEnvironmentStrings(ss:TStrings);
{Переменные среды}
var
 ptr: PChar;
 s: string;
 Done: boolean;
begin
 ss.Clear;
 s:="";
 Done:=FALSE;
 ptr:=windows.GetEnvironmentStrings;
 while Done=false do begin
   if ptr^=#0 then begin
     inc(ptr);
     if ptr^=#0 then Done:=TRUE
     else ss.Add(s);
     s:=ptr^;
   end else s:=s+ptr^;
   inc(ptr);
 end;
end;



 
Digitman ©   (2005-07-08 09:05) [12]

procedure GetEnvironmentStrings(ss:TStrings);
var
ptr,ptr1: PChar;
s: string;
begin
 ss.Clear;
 ptr := Windows.GetEnvironmentStrings;
 ptr1 := ptr;
 try
   s := StrPas(ptr1);
   while s <> "" do
     begin
       ss.Add(s);
       Inc(ptr1, Length(s) + 1);
       s := StrPas(ptr1);
     end;
 finally
   FreeEnvironmentStrings(ptr); //!!!
 end;

end;


 
evvcom ©   (2005-07-08 09:20) [13]


> Разве этот Path не включает все возможные пути для любых
> процессов?

При создании процесса локальная переменная Path (в области видимости данного процесса) инициализируется в соответствии с глобальными настройками системы, а уж далее конкретный процесс может эти настройки изменить.



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

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

Наверх




Память: 0.51 MB
Время: 0.036 c
1-1120572959
kyn66
2005-07-05 18:15
2005.07.25
Плавный скролинг формы.


14-1120079587
Константинов
2005-06-30 01:13
2005.07.25
Вопрос Москвичам


14-1120379824
lookin
2005-07-03 12:37
2005.07.25
Идиотизм, да и только...


1-1120577831
Alex77777
2005-07-05 19:37
2005.07.25
Как читать файлы xml


4-1117448916
LEXX_55
2005-05-30 14:28
2005.07.25
Как отловить системную команду закрытия.