簡體   English   中英

如何調試vs vc6 / vba app調用的2008 c#express dll?

[英]How to debug vs 2008 c# express dll which is called by a vb6/vba app?

我有一個ac#dll,它被編寫為一個包裝器,用於從數據源獲取數據並將其傳遞給vba / powerpoint ppa應用程序。 我對vba沒有多少經驗,這就是為什么我用vb6模擬這個,我知道的更多。

我現在有足夠的問題試圖理解語法,什么不適合com和ccw的錯綜復雜的工作方式。 所以我正在尋找一種方法來調試為什么函數沒有返回任何數據,並且如果可能的話,當vb6應用程序調用它時,會逐行瀏覽.net dll。

最初我想在.net dll中放入一個函數,它會寫出一個外部文件,但這似乎不起作用,我不知道為什么。

我做了一些谷歌搜索 ,發現有一個附加過程可能對我的情況有用,但該功能只適用於vs studio full versio n。

所以我希望有其他工具,我可以使用的方法可以讓我正確調試vb6 / vba應用程序和.net dll之間發生的事情。

謝謝。

您無法使用太糟糕的附加進程,因為這是可行的方法。

一個很好的Debug.Assert(false); 在.net DLL中是強制調試器出現的一種方法。

您也可以嘗試Debugger.Break(); 這應該強制斷點並詢問您是否要附加調試器。

DebugDebugger都在System.Diagnostics命名空間中。

  1. 在Visual Studio中為C#項目打開Project屬性。
  2. 轉到“調試”頁面。
  3. 選擇“啟動外部程序”並瀏覽到VB.exe(很可能是C:\\ Program Files \\ Microsoft Visual Studio \\ VB98 \\ VB6.EXE。
  4. 可選:在命令行參數中輸入VB6項目的.vbp文件的路徑。

當您運行C#項目(Debug-> Start Debugging或F5)時,它將啟動VB6。 您可以在C#項目中放置所需的任何斷點。 當您啟動VB6項目時,調試器將停在VS2005 / 2008斷點處。 您還可以使用立即窗口以及調試C#項目時的任何其他調試選項。

添加這個

<StartAction>Program</StartAction>
<StartProgram>C:\Program Files\NUnit-Net-2.0 2.2.8\bin\nunit-gui.exe</StartProgram>

在我的C#Express 2008項目的.csproj文件中,在PropertyGroup元素下,為我做了訣竅( 詳情請參見此處 )。

在Visual C#Express Edition之上下載並安裝Visual C ++ Express Edition。 兩者都是完全免費的,這將使您能夠在調試器中“附加到進程”

暫無
暫無

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

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