Предупреждение MIDL2015 при использовании атрибута importlib

У меня есть устаревшее решение Visual Studio, которое содержит несколько проектов (было обновлено до Visual Studio 2013). Один из этих проектов генерирует COM DLL. TLB из этой DLL затем импортируется в файл IDL другого проекта через атрибут importlib. Когда компилятор MIDL пытается скомпилировать файл IDL зависимого проекта, он генерирует следующее предупреждение:

предупреждение MIDL2015: не удалось загрузить tlb в importlib

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

Я попытался добавить путь к свойству MIDL -> Additional Include Directories, но я думаю, что это только для файлов IDL, заголовка и ACF (/ Я переключаю).

Я также попробовал свойство Linker -> Additional Library Directories, но это тоже не сработало.

Какой путь поиска использует MIDL при разрешении атрибутов importlib?

1

Решение

Это не интуитивно понятно, midl.exe не имеет параметра командной строки для указания каталогов для поиска. Обратите внимание, что у midl.exe никогда не возникает проблем с importlib («stdole2.tlb»), файлом, который хранится в каталоге c: \ windows \ system32.

Project + Properties, каталоги VC ++, добавляют путь, в котором хранится .tlb, к Executable Directories установка. После того, как вы закончите и добавите, скажем, «c: \ temp», он должен выглядеть как «c: \ temp; $ (ExecutablePath)».

Не уверен, что выигрывает много призов. Создание или сохранение .tlb по более предсказуемому пути, чтобы вы могли использовать относительный путь в вашей директиве importlib, вызывает меньше неожиданностей через год.

3

Другие решения


По вопросам рекламы [email protected]