Ложная ошибка «Не удается загрузить контроль, лицензия не найдена»? - PullRequest
0 голосов
/ 08 января 2019

Когда я пытаюсь загрузить форму в конструкторе, она показывает «ошибка выполнения 0» и создает файл журнала, который содержит:

Line 15: Cannot load control xxxx; license not found.

Но рассматриваемый элемент управления НЕ имеет лицензионных ограничений . У него нет установщика и требуется только регистрация (regsvr32).

Не только это, но годами это работало без проблем, и только недавно это началось. Это влияет на ряд форм, которые имеют какие-либо элементы управления из конкретного OCX.

Похоже, что-то обманывает VB6, заставляя думать, что проверка лицензии не удалась, или, по крайней мере, показывать бессмысленное сообщение об ошибке.

Я пытался отследить это с помощью Process Monitor, но не смог найти никаких полезных подсказок в журналах. По крайней мере, ничего, что было бы очевидно проблематичным.

Есть идеи, что может вызвать это? Я пока в растерянности, чтобы найти причину.

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 января 2019

(Отвечая на мой вопрос, если кто-то еще столкнется с этим снова).


Насколько я могу определить, эта ошибка была вызвана либо слегка поврежденным файлом FRX и / или парой файлов FRM / FRX из-за несинхронизации.

Вернувшись в систему контроля версий, я смог найти ревизию, в которой не было проблем. Похоже, что это само по себе устраняет что-либо в вычислительной среде. (т.е. неправильная установка VB6, дисковое пространство и т. д. и т. д.)

Я вручную сделал некоторые изменения и снова обновил этот старый код, и проблема до сих пор не появилась.


РЕДАКТИРОВАТЬ зачеркнутый текст не был неправильным, но не был достаточно конкретным - с тех пор я узнал точную основную причину.

Проблема заключалась в том, что мы загрузили 32-битный файл ICO (значок) в список изображений в одной из форм VB6. Теперь традиционно 32-битные цветные значки не могли быть использованы в VB6, и вы могли бы получить ошибку, даже пытаясь это сделать. Однако по какой-то причине некоторые ПК с Windows теперь разрешают это - что может быть бомбой замедленного действия.

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

Это произойдет в IDE при загрузке формы, ИЛИ, если скомпилированный EXE-файл запущен на другом компьютере, который учитывает исходные ограничения на значок VB6!

Я не знаю, почему при этом появляется сообщение об ошибке «лицензирование», совершенно бессмысленное.

В моем случае мы специально не вводили этот значок, это была ошибка, и поэтому потребовалось ДЛИННОЕ время для отладки и в конечном итоге выяснить это (плюс несколько очень ценных советов от людей на VBForums ).

Я создал другой вопрос специально для того, чтобы попытаться выяснить, какой базовый элемент Windows изменился, вызвав эту проблему.

0 голосов
/ 09 января 2019

Я предполагаю, что это сторонний OCX ... Многие такие продукты поставляются с собственным установщиком, который генерирует файл лицензии; простого копирования и даже regsvr32 с .ocx недостаточно для его использования в среде разработки. Если у вас все еще есть исходная процедура установки, вы можете попробовать запустить ее, чтобы восстановить лицензию. В противном случае вы можете найти файл .lic с соответствующим именем на существующем, работающем компьютере разработки (в \ Windows \ System32 , в каталоге установки VB6 или в каталоге. в который установлен .ocx ) и вручную скопируйте его в то же место на новой машине разработки.

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