Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не могу записать библиотеку [D7]


Страницы:   1 2

Tornado ©   (2010-01-12 10:21:00) 

Есть программа, с нее идет обмен данными с сервером Firebird, по локальной сети. Для работы с этис сервером используется библиотека GDS32.DLL, которая сидит в system32. Я включил в состав дистрибутива эту библиотеку, но если пользователь на компютере не администратор (у нас такое сплошь и рядом) - то инсталлятор (Inno Setup использую) не может записать эту библиотеку в system32. А без нее не работает программа, пишет не могу загрузить GDS32.DLL при попытке что-либо отправить на сервер (ну допустим запрос на вставку или выборку). Вся работа идет через компоненты FIBPlus.

Что можно сделать?


ANB   (2010-01-13 17:44:00) [1]


> А другие идеи тоже не лучше

Пишу толстые экзешники и не парюсь. DLL только для хуков.


Anatoly Podgoretsky   (2010-01-13 17:20:00) [2]

> ANB  (13.01.2010 15:12:29)  [29]

А другие идеи тоже не лучше


sniknik   (2010-01-13 17:04:00) [3]

> А Рихтер назвал эту идею плохой ("Ад DLL") :)
если бы оно работало так как задумывалось... 1 dll и все ее используют, а так как в этой ветке одна лежит в реестре, и каждая программа свою копию таскает, т.к. привязана к версии, или другим причинам, вод и получается ад, куча одноименных dll и ни с одной нормально не работает, в общем сами себе ад создаем...


ANB   (2010-01-13 15:12:00) [4]


> Если не считать что это извращение самого смысла длл.
> :)
> Билгейц зачем придумал это? Лежит один код в одном месте.
>  Все юзают.

А Рихтер назвал эту идею плохой ("Ад DLL") :)


Tornado   (2010-01-13 08:41:00) [5]


> Виталий Панасенко(дом)   (12.01.10 22:02) [26]
Или ты сам из них?

Бог с тобой ))) Нет, я инсталлятор сделал просто и столкнулся с этой проблемой. Ну вообщем внимаю советам бывалых, отдал дистриб админам, пусть сами ставят ))


Tornado   (2010-01-13 08:37:00) [6]


> Медвежонок Пятачок ©   (12.01.10 12:54) [16]

Она там будет лежать )))


Виталий Панасенко(дом)   (2010-01-12 22:02:00) [7]

А вообще, их (gds32.dll)может быть масса... Вот тут, кто первый, тот и папа!..:-)
А вообще, действительно непонятно, набуя тогда админы? Или ты сам из них?


Медвежонок Пятачок   (2010-01-12 16:54:00) [8]

Вообще-то в system32 может лежать совсем не той версии gds32..

И как же FileExists может помочь в этой беде?


turbouser   (2010-01-12 16:19:00) [9]


> Медвежонок Пятачок ©   (12.01.10 13:28) [20]

Вообще-то в system32 может лежать совсем не той версии gds32..


Anatoly Podgoretsky   (2010-01-12 15:13:00) [10]

> ANB  (12.01.2010 10:50:06)  [6]

Лучшим вариантом будет инсталятор в виде .msi и централизованая установка через политики.


Anatoly Podgoretsky   (2010-01-12 15:11:00) [11]

> Tornado  (12.01.2010 10:32:02)  [2]

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


Anatoly Podgoretsky   (2010-01-12 15:09:00) [12]

> Tornado  (12.01.2010 10:21:00)  [0]

Сделать как положено, установка программ прерогатива администратора.


Медвежонок Пятачок   (2010-01-12 13:28:00) [13]

И в чем прикол этого кода?

в параметрах коннекшена скажем написано "gds32.dll"

либа может лежать либо в систем32 либо в папке с программой (две версии инсталлятора)

что именно не будет работать при отсутствиии мегакода из [19] ?


turbouser   (2010-01-12 13:17:00) [14]


> Медвежонок Пятачок ©   (12.01.10 13:13) [18]

:)
var S:string;
S:= ExtractFilePat(Application.ExeName)+'GDS32.DLL';
with pFIBDatabase do
if fileexists(S) then
LibraryName := S else
LibraryName := 'GDS32.DLL';


Медвежонок Пятачок   (2010-01-12 13:13:00) [15]

if filexists()

И чего дальше?


turbouser   (2010-01-12 12:56:00) [16]


> Медвежонок Пятачок ©   (12.01.10 12:54) [16]

if filexists()


Медвежонок Пятачок   (2010-01-12 12:54:00) [17]

а что будет, если в настройках прописан абсолютный путь к либе, а она по этому пути не лежит?
будет то же самое что и сейчас у тебя происходит


Tornado   (2010-01-12 12:30:00) [18]


> Медвежонок Пятачок ©   (12.01.10 12:18) [14]

И что будет?


Медвежонок Пятачок   (2010-01-12 12:18:00) [19]

О точно, про это я и забыл совсем, спасибо!

Вспомнишь, когда встретится машина на которой софт ставился из под админа и длл легла в system32


Tornado   (2010-01-12 11:57:00) [20]


> turbouser ©   (12.01.10 11:35) [12]

О точно, про это я и забыл совсем, спасибо!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо