2010-08-18 2 views
1

Мне нужно отладить большое приложение, сделанное в VB6. Приложение состоит из основного EXE, некоторых проектов ActiveX и других проектов управления ActiveX.Не удается отладить ActiveX внутри проекта VB6 с несколькими компонентами внутри

Проблема, с которой я столкнулся, заключается в том, что я не могу ударить точки останова внутри некоторых проектов ActiveX. Похоже, приложение использует OCX вне отладчика, потому что приложение работает, но точки останова просто отсутствуют.

Основной EXE имеет ссылку на OCX, сгенерированный этим проектом. Если я удалю эту ссылку, я получаю ошибку компиляции об неизвестных классах.

Любая помощь будет отличной.

ответ

4

Убедитесь, что ваш проект ActiveX использует двоичную совместимость (на вкладке «Компонент» свойств проекта). Если это не так, ваш проект exe, который ссылается на элемент управления ActiveX, указывает на другой идентификатор класса, отличный от вашего проекта ActiveX, и вы не сможете его отлаживать.

+0

Можете ли вы объяснить, почему это необходимо? Я не понимаю. Если ActiveX находится внутри проекта, я ожидаю, что проект EXE использует проект ActiveX. –

+0

Конечно, это сработало. –

+3

@SoMos Это необходимо, потому что ваш проект больше не ссылается на ActiveX внутри проекта, потому что вы позволили изменить идентификаторы GUID. VB6 и COM теперь считают, что встроенный OCX полностью отделен от проекта исходного кода. Каждый раз, когда вы его создаете, он меняет идентификаторы. +1 C-Pound Guru – MarkJ