Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / regsvr32 зависает при регистрации / 19 сообщений из 19, страница 1 из 1
10.07.2019, 14:13
    #39835961
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
есть windows 7
написал для него dll в виде ActiveX Library в Delphi 7, которая включает один automation object из нескольких интерфейсов.

Пытаюсь его зарегистрировать. На некоторых машинах нормально регистрирует, а на одной зависает.
Просто виснет и ничего не говорит.
Компьютер в домене. Но другие тоже в домене, а на них регистрирует нормально.

regsvr32 mylib.dll

Добавлял
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function DllRegisterServer: HResult; stdcall;
begin
  Result := ERROR_SUCCESS;
end;

function DllUnregisterServer: HResult; stdcall;
begin
  Result := ERROR_SUCCESS;
end;




но не помогло

основной код стандартен при создании Activex Library

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
library MyLib;

uses
  ComServ,
    Windows, SysUtils, Classes,
  MyLib_TLB in 'MyLib_TLB.pas',
  MainComUnit in 'MainComUnit.pas' {MyLibC: CoClass},
  HTTPClassUnit in 'classes\HTTPClassUnit.pas',
  IniClassUnit in 'classes\IniClassUnit.pas',
  InternetClassUnit in 'classes\InternetClassUnit.pas',
  CertsClassUnit in 'classes\CertsClassUnit.pas',
  CodecUnit in 'CodecUnit.pas',
  MyLibClassUnit in 'classes\MyLibClassUnit.pas',
  uLkJSON in 'uLkJSON.pas',
  LogUnit in 'LogUnit.pas';

exports
  DllGetClassObject,
  DllCanUnloadNow,
  DllRegisterServer,
  DllUnregisterServer;

{$R *.TLB}

{$R *.RES}

begin
end.
...
Рейтинг: 0 / 0
10.07.2019, 18:36
    #39836072
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29,

фоновую службу RPC проверь
...
Рейтинг: 0 / 0
10.07.2019, 18:39
    #39836074
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
kealon(Ruslan)evgen29,

фоновую службу RPC проверь

в смысле проверить работает или нет?
или как-то еще?
...
Рейтинг: 0 / 0
10.07.2019, 18:40
    #39836076
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29,

ну хотя бы "запущена"
...
Рейтинг: 0 / 0
11.07.2019, 04:29
    #39836143
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
антивирусы?
...
Рейтинг: 0 / 0
11.07.2019, 09:42
    #39836181
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
makhaonантивирусы?скорее всего нет, корпоративная же сетка, одинаковые должны быть - на других бы тож самое было.
...
Рейтинг: 0 / 0
11.07.2019, 10:10
    #39836196
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
kealon(Ruslan),

А откуда идёт регистрация?
Если попробовать скопировать dll'ку в system32 (sysWOW64, если система x64, а dll - x86) и оттуда зарегистрировать?

Можно попробовать ProcessMonitor'ом посмотреть в какой момент зависает.
...
Рейтинг: 0 / 0
11.07.2019, 11:13
    #39836236
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
это странно
в журнале пишет на regsvr32 Код исключения: 0xc0000005
отказано в доступе или еще что?
система 64-х разрядная
запускаю cmd От имени админа со следующим текстом %windir%\syswow64\regsvr32 c:\path_to_mylib\mylib.dll
я вначале грешил на антивирус, но там его не оказалось. Поставил 360 total security. Тот ничего страшного не нашел.
Потом полез в журнал, а там это.
Комп в домене.
...
Рейтинг: 0 / 0
11.07.2019, 12:10
    #39836283
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29Код исключения: 0xc0000005
отказано в доступе или еще что?AV
...
Рейтинг: 0 / 0
11.07.2019, 12:26
    #39836293
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29,

судя по отсутствию реакции на фейловую подмену
Код: pascal
1.
2.
3.
4.
function DllRegisterServer: HResult; stdcall;
begin
  Result := ERROR_SUCCESS;
end;



может путь path_to_mylib с пробелами?

Код: plaintext
%windir%\syswow64\regsvr32 "c:\path_to_mylib\mylib.dll"
...
Рейтинг: 0 / 0
11.07.2019, 16:50
    #39836480
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
kealon(Ruslan)evgen29,

судя по отсутствию реакции на фейловую подмену
Код: pascal
1.
2.
3.
4.
function DllRegisterServer: HResult; stdcall;
begin
  Result := ERROR_SUCCESS;
end;



может путь path_to_mylib с пробелами?

Код: plaintext
%windir%\syswow64\regsvr32 "c:\path_to_mylib\mylib.dll"


да вот в том то и дело, что путь без пробелов и даже без русских символов
тоже в бубен стучу и гадаю, в чем может быть дело...
...
Рейтинг: 0 / 0
11.07.2019, 16:53
    #39836482
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29, выкинуть из длл все мясо, оставить совсем пустую обертку, регается ли? потом добавлять юниты, раз так найти гробящийся не удается
...
Рейтинг: 0 / 0
12.07.2019, 12:20
    #39836771
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
vavanevgen29, выкинуть из длл все мясо, оставить совсем пустую обертку, регается ли? потом добавлять юниты, раз так найти гробящийся не удается

мясо почистил, пустая либа с ком-объектом регистрируется нормально.
Моя же выдает полностью это. Видимо проблема действительно в одном из модулей.
Там в некоторых модулях есть секции Initialization и finalization. в них к примеру логи создаются или идет подключение к ини.
Может доступа у библиотеки нет конечно к работе с файловой системой.
Буду искать дальше:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Имя сбойного приложения: regsvr32.exe, версия: 6.3.9600.17415, метка времени: 0x5450484f
Имя сбойного модуля: mylib.dll, версия: 1.0.0.0, метка времени: 0x2a425e19
Код исключения: 0xc0000005
Смещение ошибки: 0x00003762
Идентификатор сбойного процесса: 0x15fc
Время запуска сбойного приложения: 0x01d5389033672cd9
Путь сбойного приложения: C:\Windows\SysWOW64\regsvr32.exe
Путь сбойного модуля: d:\test\libs\mylib.dll
Идентификатор отчета: 71dd5908-a483-11e9-8253-80c5f23b1dde
Полное имя сбойного пакета: 
Код приложения, связанного со сбойным пакетом: 
...
Рейтинг: 0 / 0
12.07.2019, 12:29
    #39836777
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29
Код: pascal
1.
2.
Код исключения: 0xc0000005
Смещение ошибки: 0x00003762




А если для библиотеки подробный map-файл создать и посмотреть, что за функция там по этому смещению?..
...
Рейтинг: 0 / 0
12.07.2019, 12:35
    #39836782
vavan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29Там в некоторых модулях есть секции Initializationвот где-то там по всей видимости и порылась gpf
...
Рейтинг: 0 / 0
12.07.2019, 13:20
    #39836815
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29,

значит инициализация либы
багрепортер какой нить подцепи, да LoadLibrary сделай и найдёшь
...
Рейтинг: 0 / 0
14.07.2019, 11:10
    #39837195
evgen29
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
vavanevgen29Там в некоторых модулях есть секции Initializationвот где-то там по всей видимости и порылась gpf

В общем, действительно, я сам дурак. У меня один модуль использует CadesCom для работы с сертификатами. А для него необходимо установить Cades Plugin. Инсталяха плагин автоматом не установила, соответственно при попытке создания объекта класса в секции initialize, который использует вызов
Код: pascal
1.
FStore := CreateOLEObject('CAdESCOM.Store');

в конструкторе , происходила бага, которая пыталась вызвать неустановленный на компьютер объект. А initialize загружается всегда при обращении к библиотеке. Установил плагин, всё заработало.

Вот так вот иногда полезно пообщаться на форуме. Спасибо )))
...
Рейтинг: 0 / 0
14.07.2019, 12:10
    #39837205
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
evgen29,

Вообще, такие вещи в Initialization делать ИМХО в принципе не стоит.
Ну или делать их с обработкой ошибок, записью в EventLog и возвратом правильного кода ошибки.
...
Рейтинг: 0 / 0
15.07.2019, 09:59
    #39837328
Василий 2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regsvr32 зависает при регистрации
alekcvpevgen29,

Вообще, такие вещи в Initialization делать ИМХО в принципе не стоит.

+1. Особенно в DLL. Мало того что ошибки трудно диагностируются, так еще и DLLMain без проблем позволяет применять только очень малый набор функций
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / regsvr32 зависает при регистрации / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]