Russian Qt Forum

Qt => ActiveX => Тема начата: makes от Июнь 25, 2010, 01:15



Название: MIDL not found!
Отправлено: makes от Июнь 25, 2010, 01:15
Проблема!
Пытаюсь собрать COM DLL server.
Успешно создаются dll и idl.
А вот tlb не генерируется — отсутствует MIDL (на это указывает ошибка при вызове CreateProcess("midl ...")).
Скопировал mild.exe, midlc.exe, cl.exe из студии 2005 в кутишный бин.
Запускаю "пересобрать проект" — midlc.exe падает!

как сгенерировать tlb ?!!

P.S.
Настройки проекта:
----------------------------------
TEMPLATE = lib
VERSION = 1.0
TARGET = MyQtActiveX
CONFIG += qt warn_off qaxserver dll
HEADERS += ...
SOURCES += ...
RC_FILE = src/qaxserver.rc
DEF_FILE = d:\dev\...\src\qaxserver.def
----------------------------------


Название: Re: MIDL not found!
Отправлено: Sanya от Июнь 25, 2010, 08:50
Правильного ответа не знаю, но, как шаманство, я компилил проект под студией и уже в creator подсовывал tlb файл - там интерфейс ActiveX, и если он не часто меняется ....


Название: Re: MIDL not found!
Отправлено: Sancho_s_rancho от Июнь 25, 2010, 09:05
Бинарники можно было копировать лет 12-15 назад. Сейчас ПО стало несколько сложнее. Как самый простой вариант запустите Qt creator  из MS c++ enviroment. midl нормальное системное окружение надо.


Название: MIDL found!!!
Отправлено: makes от Июнь 25, 2010, 13:18
Спасибо, Санчо! Помогло!

... запустите Qt creator  из MS c++ enviroment...

Сначала решил добавить переменные среды вызовом vcvars32.bat (добавил этап сборки перед стандартными).
Не помогло!
Тогда вручную добавил пути в PATH в "среде сборки".
И еще добавил переменную INCLUDE из того же vcvars32.bat (без нее компилер ругался C1034, "no include path set").
Способ сработал, хотя он мне кажется не очень красивым.
Наверное в pro-файле можно менять переменные среды (я искал, но не нашел)?

И еще, почему-то к конце имени dll файла была добавлена 1: myqtactivex1.dll ?


Название: Re: MIDL not found!
Отправлено: Sancho_s_rancho от Июнь 25, 2010, 13:32
Я  этим всем делом не пользуюсь, но когда понадобилось я запустил этот батник с окружением  и из этой консоли запустил qtcreator.exe. Не элегантно, но быстро.