У меня есть проект C ++, который импортирует два файла .tlbs в заголовочный файл.
#import "..\bin\derived.tlb" named_guids raw_interfaces_only
#import "..\bin\base.tlb" named_guids raw_interfaces_only
Сейчас derived.tlb
зависит от base.tlb. Есть базовые классы в base.tlb
что занятия в derived.tlb
основаны на.
Когда я компилирую, я получаю
msgstr «фатальная ошибка c1084: невозможно прочитать файл библиотеки типов ‘.. \ производный.tlb’: ошибка загрузки библиотеки типов / DLL.»
Теперь жалуется на derived.tlb
но проблема, по-видимому, заключается в том, что невозможно найти base.tlb
,
base.tlb
исходит от C# Com interop
проект. Если я проверю «зарегистрироваться для взаимодействия» на вкладке сборки проекта c #, эта проблема исчезнет в проекте c ++. Но я не хочу регистрировать это. Он создается на сборочной машине, на которой ничего не должно быть зарегистрировано. Итак, я создаю .tlb
с шагом пост сборки tlbexport
,
tlb
создается в правильной папке, но кажется, что без регистрации, #import
не могу найти base.tlb
при импорте derived.tlb
,
Я вижу в процессе монитора, он пытается чертовски много мест, чтобы найти base.tlb
но не та папка, которая соответствует ..\bin\
,
Что я могу сделать, чтобы найти его в нужном месте? Добавление записи для этого в «Дополнительные каталоги включения» в проекте c ++, похоже, не помогает.
Задача ещё не решена.
Других решений пока нет …