Переход через COM-объект VB6, обернутый .NET Class - PullRequest
4 голосов
/ 16 июня 2011

У меня есть объект VB6, обернутый классом .NET. Насколько я помню, можно пройти по объекту VB6, просто запустив библиотеку VB6 и вставив точку останова в нужное место.

Однако в моем случае это не работает. Я попытался перекомпилировать объект VB6 и повторно сослаться на него в моем проекте .NET, но это, похоже, не помогло.

Куда мне идти отсюда? Есть ли способ вставить Debugger.Launch() эквивалент в проект VB6? Любая помощь будет оценена !!

1 Ответ

8 голосов
/ 16 июня 2011

Поднято с блога Робгрюена :

Если вы используете interop для вызова DLL или exe VB6 ActiveX, и вы необходимо отладить ваш проект VB6, вы можете найти оба VS.NET и VB6 IDE открыты. Это, безусловно, может быть далеко от эффективный.

Обычно вы устанавливаете свой проект VB6 на «Подождите, пока компонент не будет создан », и вы запускаете приложение .NET, а затем нажимаете точки останова компонент VB6. Ну, есть более простой способ сделать это. Вы можете фактически отладить ваш компонент VB6 в VS.NET. Вот что тебе нужно делать:

1) Создайте свой проект VB6 с помощью символов. В VB6 откройте файл VBP. и перейдите к «Project-> Properties». Выберите вкладку «compile» и проверьте «Compile to Native Code». Затем выберите радио «No Optimization» нажмите кнопку и установите флажок «Создать символическую отладочную информацию».

При этом будет создан файл .PDB (база данных программ) вместе с вашим .EXE. Этот файл содержит информацию об отладке, поэтому VS.NET отладчик может выстроить в линию исходный код, нажать точки останова и т. д. (убедитесь, что вы иметь бинарную совместимость с вашим VB6 dll или вам придется отказаться и повторно добавьте ссылку на компонент VB6 в VS.NET.)

2) Откройте ваш проект .NET в VS.NET.

3) Зайдите в свойства проекта и выберите «Конфигурация» Страница свойств-> Отладка »и включите неуправляемую отладку.
Для проектов VB.NET эта опция называется «Отладка неуправляемого кода», а для C # - это «включить неуправляемую отладку».

4) Выберите страницу свойств для решения.

5) Добавьте в «Отладочные исходные файлы» запись, указывающую на путь где исходный код для компонента VB6.

6) Добавьте в «Файлы отладочных символов» запись, указывающую на папку где файл .PDB создан на шаге 1.

7) Теперь вы сможете открывать файлы .bas, .cls, .frm и т. Д. В VS.NET и вы можете поставить точки останова в файле. Как только вы отлаживаете отладчик остановится на этих строках кода.

...