NTSVC.OCX проблемы в Windows 7 - PullRequest
       32

NTSVC.OCX проблемы в Windows 7

0 голосов
/ 11 февраля 2010

У меня есть служба VB6, которая использует стандартный файл NTSVC.ocx, чтобы помочь управлять всеми функциями службы NT.Приложение работает на Windows 2003 Server RC1 без проблем.Наша команда по продажам спросила, можем ли мы разместить это же приложение на ноутбуке, которое можно использовать в качестве демонстрационной версии сайта.Единственная проблема, с которой я столкнулся, заключается в том, что ноутбук новый и работает под управлением Windows 7, а у производителя есть только драйверы для устройств Windows 7.

Для этой службы нет установщика.Я вручную загружаю ocx и поддерживающие другие dll в различные папки Windows и System32, а затем запускаю regsvr32 из командной строки для загрузки OCX.Служба имеет набор параметров командной строки для установки и удаления самой службы.

Когда я пытаюсь выполнить REGSVR32 OCX, я получаю следующую ошибку:

Модуль "C: \ Windows \System32 \ ntsvc.ocx "не удалось загрузить.Убедитесь, что двоичный файл хранится по указанному пути, или отладьте, чтобы проверить наличие проблем с двоичными или зависимыми файлами .DLL.Указанный модуль не найден.

Ответы [ 4 ]

0 голосов
/ 11 июня 2014

Как сказал ich: в административной оболочке: regsvr32 C: \ Windows \ SYSWOW64 \ NTSVC.ocx действительно работает для меня. Обратите внимание, что \ System32 не работает, так как он выдал ошибку. Это может работать в среде x86.

У меня сейчас нет ошибок в моем проекте, но я не пробовал, работает ли он правильно.

0 голосов
/ 28 февраля 2010

этот ocx (также другой ocx, такой как vbwheelscollfix.dll) зарегистрировать очень легко. Первый шаг: скопируйте этот OCX в папку C: \ Windows \ SYSWOW64 (на 32-битной, я подозреваю, что это SYSWOW32).

Второй шаг: Откройте CMD с правами администратора.

Последний шаг: Теперь вы можете зарегистрировать / отменить регистрацию файла по пути SYSWOW.

0 голосов
/ 15 августа 2012

Одна потенциальная причина, которая может привести к вашей проблеме, состоит в том, что NTSVC.OCX построен с фиксированным базовым адресом (другими словами, образ был связан компоновщиком с переключателем / FIXED ). Начиная с Vista, загрузчик Windows использует механизм рандомизации слоев адресного пространства (ASLR) .

На основе этой функции ASLR загрузчик Windows пытается загрузить компонент OCX по другому базовому адресу, чем предопределенный (тот, который жестко задан в файле образа OCX). Поскольку ваша база адресов OCX жестко запрограммирована, загрузчик не сможет загрузить ваш OCX (который технически является просто DLL!).

См. Снимок ниже, показывающий эти поля изображения NTSVC.OCX с использованием PeStudio :

enter image description here

0 голосов
/ 11 февраля 2010

Сначала я бы попробовал Ходок за зависимостями . Если это не дает вам подсказки относительно того, что вам нужно, вы можете быть SOL. Также вам нужно будет запустить regsvr32 от имени администратора, чтобы вы получили небольшое всплывающее окно UAC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...