![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу записать библиотеку [D7]
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]
О точно, про это я и забыл совсем, спасибо!