Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Windows 7 x64 Home Basic непредсказуемо генерирует посредника для COM-сервера. / 2 сообщений из 2, страница 1 из 1
15.12.2013, 19:45
    #38501521
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Windows 7 x64 Home Basic непредсказуемо генерирует посредника для COM-сервера.
Локальный COM-сервер построен в Visual Foxpro 9 SP2 как Single-threaded COM server (dll). Использую его для работы с индексами по полям с "двоичным текстом" в досовских таблицах. Для этого CODEPAGE = 866 во встроенном config.fpw
Через несколько дней отладочной эксплуатации рядом с CP866.dll возникает дополнительный файл CP866r1.dll размером 4624 Kb, при том, что размер CP866.dll равен 35155 байт - в 131 раз меньше. Эффект не воспроизводим. Не удаётся определить, какие операции в приложении его вызывают. Работоспособность не нарушается, пока не удалю CP866r1.dll. После этого даже восстановление CP866r1.dll не возвращает работоспособность сервера. Программа regsvr32.exe для любого из этих *.dll выдаёт какой-то сбой (не записал, какой). И даже удаление обеих *.dll и повторная постройка сервера не даёт успеха. Чтобы получить возможность построить в Visual Fox сервер CP866.dll заново, приходится восстанавливать инстоляцию Фокса с дистрибута.

Повреждения CP866.dll явно не происходит. Этот же CP866.dll нормально работает на целевой (клиентской) ПК, если положить приложение в пусковом каталоге рядом с ран-таймовскими файлами GdiPlus.dll, MsVcr71.dll, Vfp9r.dll, Vfp9rRus.dll. Файл CP866r1.dll в этом случае не требуется.
Пока у меня подозрение на то, что я регистрирую COM-сервер программно каждый раз при запуске приложения и разрегистрирую его обратно при завершении приложения вот таким образом:
DECLARE LONG WinExec IN Kernel32 STRING lpCmdLine, LONG uCmdShow
m.Res_ln = WinExec ('regsvr32 /s' + m.Unreg_lc + m.DllPath_yc, SW_HIDE)
CLEAR DLLS WinExec
Но неясно, как наверняка проверить эту гипотезу.
Что бы это значило, появление посредника *r1.dll, и как с этим бороться.
...
Рейтинг: 0 / 0
15.12.2013, 23:12
    #38501626
Rostislav D. Kudryashov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Windows 7 x64 Home Basic непредсказуемо генерирует посредника для COM-сервера.
Rostislav D. Kudryashov, Ситуация немного прояснилась. Посредник *r1.dll возникает при запуске реального фоксовского exe-приложения, а не в отладном режиме из среды разработки. И не только под Win7 x64, но и под WinXP x86. Но для чего он нужен, как от него отделаться, все равно загадка.
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Windows 7 x64 Home Basic непредсказуемо генерирует посредника для COM-сервера. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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