簡體   English   中英

如何從c#項目調試c ++ dll?

[英]How to debug the c++ dll from c# project?

我創建了一個visual c++ 6.0 dll項目,並使用我的c#代碼。 現在我想調試dll但我無法做到。

我選擇以下選項來執行此操作:

  • 把斷點放在我的visual c++項目代碼中。
  • 構建dll並將其復制到我的c#項目目錄中。
  • 現在我構建我的c#項目並且dll工作正常(方法調用完美)。
  • 現在我想調試dll
  • 我按照博客打開c++項目,然后從vc++選擇Attach to process
  • 但我無法找到visual c# project的運行過程,而在任務管理器進程中可以找到它。

在我的c#項目解決方案中,我有兩個項目即

  • Web服務(我在訪問URL時調用了dll方法)
  • 另一個是啟動Web服務的webform application

現在請幫助我如何調試我的DLL。 我已經關注了很多博客,但他們都專注於Attaching process方法,這種方法在我的條件下無效。 我該怎么辦?

您需要啟用非托管調試,在任一情況下都不會打開它,因為您的主程序是受管理的。

您可以在C#項目中使用Project> Properties> Debug選項卡>勾選“啟用非托管代碼調試”復選框。

您可以通過單擊“選擇”按鈕,使用“工具”>“附加到進程”來執 選擇“調試這些代碼類型”單選按鈕並勾選Managed和Native。 如果您的進程是64位,則可能不得不求助於本機。

在DLL的源代碼中設置斷點,並確保編寫運行DLL函數的C#代碼。 如果仍然無法獲得斷點,請使用Debug> Windows> Modules並驗證您是否在模塊列表中看到DLL。 通過右鍵單擊獲取其他疑難解答信息,選擇符號加載信息。 其中顯示了調試器查找PDB文件的位置。

您可以將C ++項目添加到C#解決方案並直接向項目添加引用(而不是dll),然后您將不需要復制DLL。 之后,只需啟動C#項目的正常調試(F5),斷點也將適用於C ++項目。 這種方式非常適合調試。 我嘗試過這樣的調試,並沒有改變任何其他設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM