Как отлаживать dll c ++ из проекта c #?

Я создал проект visual c ++ 6.0 dll и использовал его из моего кода C# . Теперь я хочу отлаживать dll , но я не могу это сделать.

Для этого я выбираю следующий вариант:

  • поместите точку прерывания в код проекта visual c ++ .
  • создайте dll и скопируйте его в каталог моего проекта C# .
  • Теперь я строю проект C# и dll отлично работает (метод отлично вызывается).
  • Теперь я хочу отладить dll .
  • Я следую блогу и открываю проект c ++ и выбираю Attach to process из vc ++ .
  • , но я не могу найти выполняемый процесс проекта visual C# , тогда как он доступен в процессе диспетчера задач.

В моем проектном решении C# у меня есть два проекта i.e.

  • веб-сервис (я назвал метод dll во время доступа к URL-адресу)
  • Другим вариантом является webform application , который запускает веб-службы.

Теперь, пожалуйста, помогите мне, как мне отладить мою dll. Я следил за таким количеством блогов, но все они сосредоточены на методе Attaching process , который не работает в моем состоянии. Что мне делать?

5
nl ja de

2 ответы

Вам нужно включить неуправляемую отладку, она не включена по умолчанию в любом сценарии, потому что ваша основная программа управляется.

You do it in your C# project with Project > Properties > Debug tab > tick the "Enable unmanaged code debugging" checkbox.

You do it with Tools > Attach to Process by clicking the Select button. Choose the "Debug these code types" radio button and tick both Managed and Native. You may have to resort to only native if your process is 64-bit.

Set a breakpoint in the DLL's source code and be sure to write C# code that exercises the DLL function. If you still have trouble getting a breakpoint then use Debug > Windows > Modules and verify that you see the DLL in the module list. Get additional troubleshooting info by right-clicking it, select Symbol Load Information. Which shows a trace of where the debugger looked for the PDB file.

9
добавлено
Я попытался удалить неуправляемую отладку, но, как я уже сказал, у меня есть один проект веб-сервиса и формальное приложение в моем решении. Я включил его в свой второй проект, но не нашел его в качестве первого варианта
добавлено автор Amit Pal, источник
Пожалуйста, посетите: dl.dropbox.com/u/20476478/Untitled.png
добавлено автор Amit Pal, источник
если вы не возражаете, тогда мы можем поговорить в течение 5 минут?
добавлено автор Amit Pal, источник
Примечание: в моей версии Visual Studio (2012) этот параметр называется Включить отладку собственного кода .
добавлено автор wil, источник
Опция «Включить неуправляемую отладку кода» недоступна в visual studio 2012. Является ли она такой же, как «Включить отладку собственного кода»?
добавлено автор Niloofar, источник

Вы можете добавить проект C ++ в свое решение C# и добавить ссылку непосредственно к проекту (не dll), тогда вам не нужно будет копировать DLL. После этого просто начните обычную отладку (F5) вашего проекта C#, а точки останова будут работать и для проекта C ++. Этот способ будет очень удобен для отладки. Я пробовал такую ​​отладку и не менял никаких других настроек.

0
добавлено
но для этого мне нужно изменить весь поток кода, написанный в проекте c #
добавлено автор Amit Pal, источник
да есть проблемы, потому что у меня есть .lib , связанный с визуальным проектом c ++
добавлено автор Amit Pal, источник
Я не уверен, почему вам нужно изменить поток кода для этого, вам нужно изменить ссылку на DLL на ссылку Project. Или я что-то упускаю?
добавлено автор SergeyS, источник
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest