Являются ли эти типы в одном проекте?Если нет, проверьте ссылки на проект.Они передаются через разделы реестра, которые, возможно, были изменены вне рамок проекта.
Создаете ли вы dll-компонент или ActiveX exe (в отличие от Forms exe)?Если это так, попробуйте отменить регистрацию предыдущей сборки.
Если в настройках проекта включена бинарная совместимость, VB6 будет искать предыдущую сборку для разрешения символов.Возможно, вы удалили предыдущую сборку, или она как-то сломана.Отключите двоичную совместимость и удалите предыдущую сборку, затем попытайтесь перекомпилировать.(Не забудьте отменить регистрацию, если это компонент, в противном случае ваш реестр останется усеян сломанными ключами класса.)
[править] Пояснения:
Спроверяя ссылки проекта я имею ввиду меню в IDE.В списке будет указано, не удалось ли найти ссылку (если она уже помечена как добавленная) в реестре.Да, это те, что в VBP, но с текстовым редактором вы не видите, действительно ли GUID / версия все еще существует.Они могут измениться, если указанный компонент будет обновлен / исправлен.
Поскольку реестр становится замусоренным, я имею в виду, что если вы компилируете без совместимости проекта / бинарного файла, то VB6 сгенерирует новые GUID для ваших классов.Публичные классы отмечены в реестре с путем к dll.Обычно VB6 отменяет регистрацию библиотеки DLL перед ее перезаписью, но если вы удалите предыдущую сборку вручную, никто не собирается ее отменять, поэтому информация о классе остается в реестре, ссылаясь на библиотеку DLL, которой больше не существует.