Отладка Visual Studio 2005 VB с помощью c ++ dll - Смешанная отладка языка - PullRequest
1 голос
/ 26 января 2009

У меня есть проект VB, который вызывает функции в DLL. DLL создается в отдельном проекте vs (portaudio), который написан в c.

Проект dll c компилирует чистый и создает требуемую dll, которую я сейчас отбрасываю в c: \ windows \ system, чтобы vb runtime мог это видеть.

Проект VB живет в c: \ devprojects \ vbtest

C Проект живет в c: \ devprojects \ portaudio с файлом проекта в c: \ devprojects \ portaudio \ build \ msvc. Dll создан в Win32 \ debug в этом каталоге msvc.

Когда я вызываю функцию dll, можно ли отладчику vs пройти через функцию c в dll - у меня есть весь код и т. Д., Но я не знаю, поддерживает ли VS2005 этот вид отладки смешанного языка.

Если это возможно, не могли бы вы посоветовать, как мне настроить Visual Studio для достижения этой цели.

Большое спасибо David

Ответы [ 3 ]

4 голосов
/ 26 января 2009

Нет необходимости иметь оба проекта в одном решении, но вы должны скомпилировать оба проекта с включенными символами отладки.

Теперь в вашем проекте VB net Project / Properties на вкладке «Отладка» установите флажок «Включить отладку неуправляемого кода».

Также убедитесь, что загруженная dll находится в том же месте, где она была скомпилирована, иначе она может не найти pdb, где хранятся символы отладки.

0 голосов
/ 26 января 2009

Если это VB.NET, то это очень просто, просто настройте решение с обоими проектами под ним, настройте их зависимости и убедитесь, что при сборке отладочной версии проекта VB ссылки на отладочную lib / dll, созданную из ваш проект C ++. Visual Studio сделает все остальное.

Я делал это раньше пару раз, когда приложения на C # вызывали DLL на C ++. Я не собирался это настраивать, но попытался пошагово пройти во время отладки, предполагая, что получу список сборки и, по крайней мере, смогу кое-что из того, что происходит с моим кодом ... однако он загрузил правильный файл .cpp и позволил мне продолжить этот код.

0 голосов
/ 26 января 2009

Создайте решение с обоими проектами, добавьте ссылку в проекте VB в проект C, используя диалоговое окно «Добавить ссылку» -> «Проект», и соберите их все в режиме отладки.

Как вы звоните C dll из VB?

...