![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LoadLibrary [D7, WinXP]
dll © (2008-06-04 13:08:00)разбирая унаследованный код, обнаружил, что прежний разработчик сравнивал результат LoadLibrary на то, что он больше 32. Если типа меньше, то не загружена.
Скажите, это вообще правомочно или нет?
Anatoly Podgoretsky (2008-06-05 16:44:00) [21]> dll (05.06.2008 16:08:25) [25]
Сложный вопрос, то что попало в эту папку - это особое, туда просто так не попадают.
dll (2008-06-05 16:33:00) [22]парни, как либы-то зарегистрировать в этом sxs?
Anatoly Podgoretsky (2008-06-05 16:16:00) [23]> Игорь Шевченко (05.06.2008 15:42:23) [23]
Судя по WinSxS так и есть, это папка предшественница защиты Висты, на некоторых машинах превышает System32
dll (2008-06-05 16:08:00) [24]regsrv для них не прокатывает.
как их можно прикрутить-то к системе?
dll (2008-06-05 15:45:00) [25]про манифест мне разработчик dll уже сказал.
ссылки на либы нашел в своем реестре в windows\current version\SideBySide
то есть видимо надо просто regsrv для них сделать?
Игорь Шевченко (2008-06-05 15:42:00) [26]
> в путях ее нет, значит они как-то зарегистрированы?
> чем и где?
14001 ERROR_SXS_CANT_GEN_ACTCTX
Вот это сообщение как раз на эту тему.
манифест надо делать и указывать в нем ссылку на эти dll
dll (2008-06-05 15:39:00) [27]интересно вот что.
на моей машине эти msv*80.dll лежат в папках типа этой:
C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb
в путях ее нет, значит они как-то зарегистрированы?
чем и где?
dll (2008-06-05 14:51:00) [28]dependency walker показал, что есть зависимость от
msvcp80.dll
msvcr80.dll
запустил тестовый exe с этими dll, лежащими в папке с exe - ничего не изменилось.
Anatoly Podgoretsky (2008-06-05 14:10:00) [29]> dll (05.06.2008 13:18:17) [17]
По этой ошибке есть только это
14001 ERROR_SXS_CANT_GEN_ACTCTX
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.
clickmaker (2008-06-05 13:25:00) [30]> [17] dll (05.06.08 13:18)
> GetlastError = 14001
ShowMessage(SysErrorMessage(GetLastError))
Сергей М. (2008-06-05 13:18:00) [31]
> разве при загрузке не будет явного сообщения?
>
Не будет.
Вот если бы твоя dll грузилась статически, то тогда было бы.
dll (2008-06-05 13:18:00) [32]GetlastError = 14001
dll (2008-06-05 12:54:00) [33]про импорт третьих библиотек из загружаемых щас проверяю.
но если в загружаемых длл есть статик импорт недостающих, то разве при загрузке не будет явного сообщения?
clickmaker (2008-06-05 12:49:00) [34]> [13] dll (05.06.08 12:14)
> кто может перехватывать загрузку длл?
DLL может статически прилинковывать другие DLL и импортировать функцию, которой на сотой машине не оказалось
Anatoly Podgoretsky (2008-06-05 12:23:00) [35]
> Я и так знаю, что либа не загрузилась.
Тогда сообщи нам код ошибки.
dll (2008-06-05 12:14:00) [36]кто может перехватывать загрузку длл?
dll (2008-06-05 12:13:00) [37]Тогда читай [6] до полного просветления.
Открыл америку ....Я и так знаю, что либа не загрузилась.
В общем более подробное инфо:
тестовый проект на флешке.
делается loadlibrary, затем выводится getmodulehandle для трех библиотек.
на машинах пациенов хендлы нулевые.
при завершении приложения с флешки защищенной от записи некий процесс выводит окно с текстом типа не могу записать на диск бла бла бла.
само тестовое приложение ничего не пишет на диск.
амон нода был отключен. предварительно флешка была просканирована этмм же нодом.
кроме нода из вредоносных программ замесена еще 1с
Плохиш (2008-06-05 11:10:00) [38]
> dll (04.06.08 21:29) [9]
> я не гадаю.
Тогда читай [6] до полного просветления.
Игорь Шевченко (2008-06-04 22:26:00) [39]
> я спрашиваю, что может помешать вызову loadlibrary если
> библиотека лежит в папке с exe либо в папке system32 на
> xp sp2.
Параметр реестра safedllsearchmode
dll (2008-06-04 21:29:00) [40]я не гадаю.
я спрашиваю, что может помешать вызову loadlibrary если библиотека лежит в папке с exe либо в папке system32 на xp sp2.
то, что getprocadress ничего не возвращает либо вообще не вызывается по причине что getmodulehandle меньше 32 это и так понятно.