Запихать IDL-файл в подпапку
От: Аноним  
Дата: 24.10.06 19:43
Оценка:
Проблема тупая до идиотизма, но бьюсь уже часа два.
Студия 2005, визардом создан типовой ATL-проект, в котором лежит парочка интерфейсов и реализующих их соклассов. Все компилится на ура, собирается и работает.
Засада в чем: MIDL генерирует пачку служебных файлов (*.idl, *.tlb, _*_i.c, _*_p.c), которые хочется закинуть в отдельную подпапку, чтобы под ногами не путались. Задаю в свойствах проекта Linker->Embedded IDL->MIDL Commands строку

/out midl_gen\

все зашибись, но файл *.idl генерится в папку с исходниками, в подпапку не уходит. Добавляю префикс midl_gen\ к имени idl (там же в настройках проекта), а в ответ Студия пытается класть tlb в папку midl_gen\midl_gen\
Т.е. Студия склеивает путь из директивы /out с путем и именем idl-файла. Конечно, я могу создать второй уровень вложенности подпапок, но как-то это... неаккуратненько.
Пробовал на манер вот этого, из нагугленого (заменив $(IntDir) на имя папки midl_gen)

<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
OutputDirectory="$(IntDir)"
HeaderFileName="$(IntDir)/$(InputName).h"
DLLDataFileName="$(IntDir)/$(InputName)_c.c"
InterfaceIdentifierFileName="$(IntDir)/$(InputName)_i.c"
ProxyFileName="$(IntDir)/$(InputName)_p.c"
/>


Но директива OutputDirectory не оказывает никакого влияния, все валится в текущую папку.
Воспрос: чего ей (Студии 2005) надо, чтобы аккуратно сложить все нагенеренные файлы в одну подпапку, отдельно от остальных исходников?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.