|
LoadLibrary("\\Server\NewFolder\My.dll") failed. GetLastError returns 0x0000045a Ø |
☑ | ||
|---|---|---|---|---|
|
0
Davinchi
22.07.05
✎
12:08
|
Господа, несмотря на то, что вопрос не совсем по специфике форума, хочу обратиться к вам за помощью. Проблема следующая: на 98ой винде regsvr32 при регистрации ДЛЛ (ВК для 1С) по сети выдает сообщение как в заголовке темы, как побороть эту проблему в самой ДЛЛ. Такое реально, т.к. я знаю аналогичную ДЛЛ (V7Plus.dll), которая без проблем регится по сени на 98ой винде без проблем...
|
|||
|
1
Кирпич
22.07.05
✎
13:49
|
А сервер тоже 98?
|
|||
|
2
smaharbA
22.07.05
✎
14:04
|
(0) ты что там хуки ставишь? а путь в длл тот? и как он определяется?
|
|||
|
3
Davinchi
22.07.05
✎
14:15
|
(1) сервер Win2003 Server
(2) хуков я там не ставлю, обычная внешняя компонента для 1С... |
|||
|
4
orefkov
22.07.05
✎
14:16
|
0x0000045a="Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL)."
|
|||
|
5
Davinchi
22.07.05
✎
14:19
|
(4) я понял что сбой инициализации ДЛЛ. Я так понимаю, что в ДЛЛ самому надо инициализацию отрабатывать если она регится по сети, если да, то где и как???
|
|||
|
6
Кирпич
22.07.05
✎
14:35
|
Права на этот файл dll есть у юзера?
(безопасность и тп) может ему его читать нельзя? |
|||
|
7
Davinchi
22.07.05
✎
14:44
|
с правами юзера все нормально, к таму же на сервере для компов с Вин98 никакого администрирования не настраивалось, и вообще в 98ой винде запретить юзеру что-либо регить помоему врядли возможно...
дело в том, что в этойже конфе я загружаю V7Plus.dll а следом за ней свою ВК, V7Plus регится и грузится нормально, а моя ромпонента вызывает ошибку. Если одна компонента может региться а другая нет, то дело скорее в ней а не в параметрах администрирования... |
|||
|
8
MMF
22.07.05
✎
14:51
|
(7) стало быть ошибка в компоненте. разрегистрируй, поменяй clsid и проверь будет ли она локально грузиться.
|
|||
|
9
Мутабор
22.07.05
✎
14:51
|
Локально регится?
|
|||
|
10
Davinchi
22.07.05
✎
14:54
|
(8) здраствуй MMF, я те об этой проблеме на мыло мылил...
CLSID - менял несколько раз, и вообще его сама система подбирает так, чтобы он был уникальным но дело не в нем... локально на любой ОС грузится и работает... |
|||
|
11
Davinchi
22.07.05
✎
14:57
|
локально на любой ОС грузится и работает...
|
|||
|
12
Кирпич
22.07.05
✎
15:06
|
(7)Регить тут не причем. Просто DLL не грузится, я так думаю.
Права смотри. А просто скопировать dll с сервака на 98 комп пробовал? |
|||
|
13
Davinchi
22.07.05
✎
15:09
|
(12) читай внимательно 7
|
|||
|
14
Davinchi
22.07.05
✎
15:13
|
копированием с сервака и живу уже четвертый день, для этого и использую V7Plus, чтобы определить версию винды и в зависимости от нее копировати или нет, т.к. на ВинХР все нормально грузится. Меня просто убивает факт использования V7Plus, которая грузится по сети с сервака для того чтобы опредилить как мне грузить свою компоненту...
|
|||
|
15
Davinchi
22.07.05
✎
15:17
|
И в варианте с копированием возможно есть слабое место. 1С определит, что необходимо скопировать ВК с сервера, далее выполнит ФС.КопироватьФайл и далее не дожидаясь когда он до конца скопируется может начать гружить ВК, которая скопировалась при последнем запуске 1С и в ней не будет добавлений, которые я вношу - мелочь конешно и мало вероятнаяя, но все же...
|
|||
|
16
Кирпич
22.07.05
✎
15:19
|
Да читал я. Там логики нету.
Если одна dll грузится по сети, а другая нет. И обе грузятся нормально локально, то дело не в DLL. До регистрации в реестре даже не доходит. regsvr32 ее даже не загрузил. Почему не загрузил? Наверное прав нету на чтение файла My.dll. Ну а если точно есть права, то я не знаю... |
|||
|
17
Davinchi
22.07.05
✎
15:27
|
(16) я сейчас точно проверю наличие всех прав еще раз
|
|||
|
18
Davinchi
22.07.05
✎
15:36
|
атрибут "Только чтение" не установлен
regsvr32 сначала выдает: Программа REGSVR32 вызвала сбой при обращении к странице памяти в модуле KERNEL32.DLL по адресу 0167:bff9dfff. Регистры: EAX=00000000 CS=0167 EIP=bff9dfff EFLGS=00000246 EBX=8173f5dc SS=016f ESP=0056efd4 EBP=00000000 ECX=0000016f DS=016f ESI=00000001 FS=112f EDX=0056f174 ES=016f EDI=bffca060 GS=0000 Байты по адресу CS:EIP: cc a1 e0 9c fc bf 8b 00 66 64 f7 05 1c 00 00 00 Содержимое стека: 00a90000 8173f620 81741dd4 81741d80 81741d94 c16f2190 16970000 00000001 00000000 0056f014 bff7b77b bff741f7 bffc9490 bff7b796 bffc9490 00000000 а уже потом, то что в заголовке темы |
|||
|
19
Кирпич
22.07.05
✎
15:40
|
А без REGSVR32 пробовал?
Просто ЗагрузитьВнешнююКомпоненту() |
|||
|
20
MMF
22.07.05
✎
15:42
|
(18) намыль сырцы. Гляну через полчаса.
|
|||
|
21
Davinchi
22.07.05
✎
15:44
|
сначала все тоже окошко и информацией из (18)
а потом в окне сообщений 1С Ошибка при загрузке компоненты \\ZIP\Base1C\TestDb\AsusProc.dll. Компонента не загружена |
|||
|
22
Кирпич
22.07.05
✎
15:50
|
Чота не понял я. То My.dll то AsusProc.dll :(
Ты уж извини, что я тебя долблю этими правами. Ты сидишь на компе с 98 и можешь свободно копировать dll с сервера на свой 98? Второй вопрос. А у тебя в инициализации dll ниче не понаписано? |
|||
|
23
Davinchi
22.07.05
✎
15:52
|
(20) УШЛО!!!
|
|||
|
24
Кирпич
22.07.05
✎
15:54
|
А мне вышлешь?
|
|||
|
25
Davinchi
22.07.05
✎
15:56
|
(22) Путь "\\Server\NewFolder\My.dll" дан к примеру и большого значения не имеет, реальный путь в (21) есле так легче...
Да я сижу по 98ой и спокойно копирую с сервака все че мне надо. К папре в которой все лежит полный сетевой доступ со всеми разрешениями... |
|||
|
27
Davinchi
22.07.05
✎
15:59
|
(24) мыло давай
|
|||
|
28
Кирпич
22.07.05
✎
15:59
|
(26) Ну значит не права :)
Значит понаписал чтото нехорошее... |
|||
|
29
Davinchi
22.07.05
✎
16:01
|
(26) УШЛО!!!
|
|||
|
30
Кирпич
22.07.05
✎
16:02
|
мыло в 26
|
|||
|
31
MMF
22.07.05
✎
16:08
|
(29) то, что ты написал не является внешней компонентой.
исправь на TAsusProcClass = class(TComObject, IDispatch, IInitDone, ILanguageExtender). Нет, лучше не исправь, а перепиши заново |
|||
|
32
Davinchi
22.07.05
✎
16:15
|
(31) Здрасте, не является, 1С локально с этой ДЛЛ работает же...
TTypedComObject и TComObject не влияют на суть проблемы. Я делал и с TComObject, и в конце модуля выглядело по другому, примерно вот так: ComServer.SetServerName('AddIn'); TComObjectFactory.Create(ComServer, TAsusProcClass, CLSID_AsusProcObject, 'AsusProc', 'Extension from ASUS 2005', ciMultiInstance); и все ровно проблема с загрузкой по сети на 98ой винде так и осталась... |
|||
|
33
MMF
22.07.05
✎
16:29
|
(32) посмотри свой ресурсный файл. Ты там видишь строку с ID 100?
|
|||
|
34
Davinchi
22.07.05
✎
16:36
|
Ну и что, строка с ИД 100 используется если в ДЛЛ более одного объекта или если имя объекта не совпадает с именем ДЛЛ без расширения... т.е. 1С при загрузке если не видет этой строки, пытается загрузить объект по имени ДЛЛ, у меня все совпадает...
и был у меня вариант с строкой 100 в ресурсах, на загрузку по сети это не повлияло.... |
|||
|
35
Davinchi
22.07.05
✎
16:50
|
а вот эта ссылка никаму никаких идей не подкинет???
http://support.microsoft.com/default.aspx?scid=kb;en-us;174668 |
|||
|
36
Davinchi
22.07.05
✎
16:58
|
убегаю с работы, вернусь в форум часа через 2, если что мыльте на мыло!!!
|
|||
|
37
Davinchi
23.07.05
✎
00:16
|
UP!!!
|
|||
|
38
artbear
24.07.05
✎
12:25
|
(0) Подобное сообщение говорит о том, что у тебя в системе нет (или не зарегистрирована) какой-то длл-ки, которую должна использовать твоя длл.
пройдись по своей длл-ке любым просмотрщиком ресурсов, можно depends.exe или tdump.exe и проверь наличие всех показанных длл-к |
|||
|
39
Кирпич
24.07.05
✎
18:52
|
2 Davinchi
Мож tlb нужно еще рядом с dll положить, раз с tlb сделал. Мож антивирусы какие... А вообще, делал бы как все, без творчества... :) |
|||
|
40
trdm
24.07.05
✎
19:29
|
(32)"(31) Здрасте, не является, 1С локально с этой ДЛЛ работает же..."
ну и сделай обработку что-бы при старте 1С эта длл переползала на комп с 98-й виндой и работай себе дальше... |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |