VB6 обновить / перезагрузить пользовательский элемент управления CTL, используемый в моем проекте - PullRequest
0 голосов
/ 29 октября 2018

У меня есть старый проект VB6, который использует пользовательский элемент управления CTL. Я вижу пользовательский элемент управления на панели инструментов.

Если я создаю новую форму внутри проекта и пытаюсь добавить пользовательский элемент управления, происходит сбой, поскольку «Ошибка загрузки DLL» и элемент управления не может быть добавлен.

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

Что плохого в первом проекте, что я не могу использовать пользовательский элемент управления в его формах?

Таким же образом, при открытии форм проекта, где пользовательский элемент управления уже используется, элемент управления не распознается. Кажется, что-то связано с неправильным путем / ссылкой для пользовательского элемента управления в исходном проекте.

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

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

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Не спрашивайте меня, почему, но единственный способ добиться успеха - начать с нуля. Я начал с чистого ноутбука с Windows XP с установленной Visual Studio SP6.

При попытке загрузить и скомпилировать проект появилась та же ошибка. То же самое, если я попытался нарисовать новый экземпляр моего пользовательского элемента управления: Ошибка загрузки DLL И то же самое, если я попытался открыть форму с экземплярами моего пользовательского элемента управления внутри: элемент управления не был распознан в форме (пустые области).

Итак, я начал новый пустой проект ActiveX DLL. Добавляя все объекты шаг за шагом, я мог бы загрузить их все (с некоторыми небольшими проблемами), но, наконец, я смог скомпилировать проект.

Порядок добавления объектов был важен: ссылки и компоненты, пользовательские элементы управления, модули и классы, дизайнеры и, наконец, формы.

Я пытался скомпилировать каждый шаг, чтобы уловить причину проблемы и узнать следующий объект, который нужно добавить. Но не понимаю точно, почему это работает сейчас. В любом случае, спасибо!

РЕДАКТИРОВАТЬ 2018-11-07:

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

Не знаю, почему, может быть, кто-нибудь может дать объяснение, но если я открою проект, а затем открою конструктор с именем frmDate (см. Изображение), с этого момента я смогу скомпилировать проект, и использовать пользовательский элемент управления в любой форме. Что происходит ??

enter image description here

0 голосов
/ 31 октября 2018

Откройте файл CTL в текстовом редакторе (Блокнот подойдет).

В верхней части могут быть строки, подобные следующим:

VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFlxGrd.ocx"

Может быть одна или несколько Object= строк.

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

...