Есть такое IDE для DSP — Code Composer Studio. Оно умеет общаться с DSP, у него есть COM-интерфейс. Пытаюсь его использовать. На .Net, ибо в C++ я совсем ниасилил использование COM.
Экспортировал type library в assembly. Подключил. Создаю объект.
CodeComposer.Application app = new CodeComposer.Application()
Если при этом программа не запущена, то она начинает запускаться, что отчетливо видно, но потом почему-то терминируется, а при попытках доступа к методам app возникает InvalidCastException — QueryInterface for interface IApplication failed. Вопросы:
— Почему это происходит? Произошла какая-то ошибка, и объект не создался?
— Как узнать, какая именно ошибка произошла? Как узнать статус объекта — создался и готов к работе/не создался/не готов?
— Пару раз оно все-таки отработало корректно, к методам можно было обращаться. Почему?
— Учитывая, что оно создает процесс, можно ли указать home dir и какие-нито другие параметры?
Если же при этом программа запущена, то
CodeComposer.Application app = new CodeComposer.Application()
успешно подцепляется к этой запущенной программе, и ей можно рулить методами. Вопросы:
— Как оно узнает, к какому именно процессу подцепляться? А мне можно по объекту узнать, к чему он прицеплен?
— Как потом отключиться от программы? Есть ли общий способ ее терминировать, когда больше не нужна?
— Как корректно запустить программу, подождать, пока она поднимется, и только тогда подцепиться? С учетом вопросов прошлого абзаца?
Заранее спасибо за ответы.
P.S. API этой штуки у меня нет, ориентируюсь только на названия классов/методов.
P.P.S. Просьба не пинать, с COM работаю первый раз в жизни. Нормальных док не нашел — все они какие-то детсадовские, "выберите компонент такой-то и бросьте на форму", а глубин процесса я пока не понимаю.
P.P.P.S. Где можно почитать хорошую статью про руление приложениями через COM-интерфейс?
Здравствуйте, alamar, Вы писали:
A>Есть такое IDE для DSP — Code Composer Studio. Оно умеет общаться с DSP, у него есть COM-интерфейс. Пытаюсь его использовать. На .Net, ибо в C++ я совсем ниасилил использование COM.
.......
A>Заранее спасибо за ответы.
А не судьба в статьях RSDN про COM почитать?
Здравствуйте, Kernan, Вы писали:
K>Здравствуйте, alamar, Вы писали:
A>>Есть такое IDE для DSP — Code Composer Studio. Оно умеет общаться с DSP, у него есть COM-интерфейс. Пытаюсь его использовать. На .Net, ибо в C++ я совсем ниасилил использование COM.
K>.......
A>>Заранее спасибо за ответы.
K>А не судьба в статьях RSDN про COM почитать?
Пролистал половину статей с многообещяющими названиями, так и не нашел ответа на волнующие меня вопросы

Может, конечно, не там искал...
Хотелось бы узнать хотя бы пару ключевых слов по вопросам — почему может валиться процесс/вылезать QueryInterface failed (вот это —
http://support.microsoft.com/?kbid=325699 — об этой проблеме?), и как правильно запустить-программу-и-присоединиться, если простой способ (просто создать объект) не работает.
Цитата оттуда:
After several successful calls, the server stub runs down.
Вот и интересуюсь, как узнать статус соединения с сервером. Он живой, или уже нет?