Проблема: возникла необходимость создания ActiveX компонента. В хэлпе с TM об этом не сказано ничего, пример - поставляемый с ТМ не компилиться. Как то странно: объявили, что в ТМ есть поддержка АХ компонент но не объяснили, как их создавать. А выкладывать нерабочий пример это вообще невежливо по отношению к покупателям вашего ПО. ------- *пример программы должен компилироваться с первого клика BUiLD. А если нет, то должно быть описание как собрать этот пример.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) В разделе "Визуализация технологического процесса"-"Формы отображения"-"Использование ActiveX компонентов" имеется полное описание интерфейсов для подлкючения ActiveX в ТМ5. 2) Пример рабочий, все зависит от того, в какой среде Вы пытались его компилировать, от настроек этой среды и наличия необходимых в ней компонентов. В принципе, те ошибки, что она выдавала Вам при компиляции как раз об этом и сообщают. Не думаю, что для программиста это такая уж большая проблема. Мы не можем предусматреть абсолютно все варианты! Это не возможно.
Posted by Dmitry A. E. (Участник № / Member № 1477) on :
Спасибо за ответ. Согласно справке - ТМ поддерживает 2 типа АХ компонент. Второй тип, это ТМ компоненты, а первый - не поддерживающий спецификации ТМ. С помощью ActiveX визарда MSVС++ я создал компонент. При попытке вставить его в экран ТМ проекта появилось сообщение об ошибке. Содержание следующее: ------------------------------- Debug assertion failed! Program: D:\TraceMode...\PicMan.exe File: winocc.cpp Line: 279 ... ------------------------------- Как я понял - всё дело в "Property page" диалоге. Он не нравится ТМ. При игнорировании ошибки (нажав на кнопку ignore) компонент отображается и возможна привязка каналов к методам компонента. Вам что то извесно по этому вопросу?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1) Пожалуйтса, уточните версию VC++. В VS2003 в winocc.cpp на строке 279 нет никакого ассерта.
2) Ваш компонент - пустая заготовка от визарда MFC или Вы уже модифицировали его? У нас есть готовая заготовка, вставляется в picman без проблем. Можем прислать.
Posted by Dmitry A. E. (Участник № / Member № 1477) on :
1) Приятно, что AdAstra Technical Support имеет такой дружественный интерфейс. Спасибо. 2) Весрия VS - "Microsoft Visual C++ 6.0 Standard Edition win95/98/NT/2K". Компонент можно собрать как Debug,Release,Unicode Debug и Unicode Release. Весь фокус в том, что просто Debug и Release компоненты вызывают assertion failed при вставке их на экран ТМ, а Unicode Debug и Unicode Release НЕТ. При создании компонента из заготовки VC++7.0, используется multy-byte character set, однако компонент без проблем вставляется на экран.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
После общения с программистами могу вынести следующее резюме: Сейчас быстро ответить не сможем, потому как установленной VS6 сейчас нет, а ТМ5 скомпилирована на vs2003 (mfc слинкована статически). Ассерт относится к неверному хэндлу окна, с charset'ом впрямую не связан. Т.е. - нужно ставить VS6 и смотреть в отладчике. Нужно время. Скорее всего, Вы при создании указываете визарду Windowless activities = true (в терминах 2003), надо попробовать его не задавать. Может это чем-то поможет.
Posted by Dmitry A. E. (Участник № / Member № 1477) on :
Да да. я заметил, что идёт работа с несуществующим окном. Чесно говоря перепробовал тучу комбинаций галочек в визарде. И Windowless и не Windowless.. Возможно визард всегда делал Windowless. С такой штукой сталкивался, когда визард делал проект по своему..