Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
Денис   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.01 c
1-1120478236
Pasha L
2005-07-04 15:57
2005.07.25
Чем TStringGrid отличается от TDrawGrid


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


14-1120535831
Starcom
2005-07-05 07:57
2005.07.25
Что такое заголовочные файлы.


10-1097659551
WebErr
2004-10-13 13:25
2005.07.25
Позднее связывание


14-1120460018
Chaster
2005-07-04 10:53
2005.07.25
PHP Dump





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский