Я пытаюсь создать старую версию приложения, которая состоит из проектов VC ++, написанных в Visual Studio 2003.
Моя ОС - Windows 7 Enterprise (64-разрядная).
Когда я пытаюсь построить решение, я получаю следующие ошибки:
-
ошибка C4772: #import ссылается на тип из отсутствующей библиотеки типов; '__missing_type__' используется в качестве заполнителя
-
фатальная ошибка C1084: не удается прочитать файл библиотеки типов: 'Smegui.tlb': ошибка загрузки библиотеки типов / DLL.
Они оба жалуются на следующее утверждение импорта:
#import "Smegui.tlb" no_implementation
Это не тот случай, когда путь к файлу неверен, поскольку переименование файла Smegui.tlb приводит к тому, что компилятор выдает еще одну ошибку, говоря, что не может найти библиотеку.
Smegui из другого приложения, от которого зависит это. Я подумал, что, возможно, мне не хватает DLL, но нет такой вещи, как Smegui.dll.
Все, что я знаю о файлах .tlb, это то, что они являются библиотекой типов, и вы можете создавать их из сборки, используя tlbexp.exe или regasm.exe (последний также регистрирует сборку в COM)
Существует также скрипт сборки Apache Ant, который использует пользовательскую задачу для вызова devenv.com для сборки проектов. Это тот же сценарий, который изначально использовался сервером сборки для сборки приложения. Это выдает мне те же ошибки, когда я пытаюсь запустить его.
Самое странное в этом то, что я знал, что это должно работать, видя, как это все недавно проверено из подрывной деятельности. Я пробовал много разных комбинаций: администратор против повышения пользователя, VS против сборки Ant, очистки, выпуска.
У меня получилось собрать его успешно около 5 раз, но сборка кажется недетерминированной.
Если кто-то может пролить свет на то, как этот tlb-материал вообще работает или что эта ошибка может означать, я был бы очень признателен.