[英]Debugging VB6 project that calls a .Net(C#) dll
我已經把這個問題留了幾個小時了。 我希望有人遇到類似的問題。
我們使用VS2010開發了一個原型.Net(C#)dll,並且希望能夠在C#應用程序和VB6應用程序中調用這個dll。
我的問題是:
是否可以調試調用.Net dll的VB6應用程序? 我收到錯誤消息“ 自動化錯誤系統找不到指定的文件 ”
錯誤消息表明我的VB6應用程序找不到.Net dll。
我知道如果VB6應用程序已經編譯,並且已經創建了.exe,VB6將在使用.exe時成功調用.Net dll功能
但是,重要的是我們可以通過VB6應用程序進行調試。 不幸的是,調試不允許您跨越實例化.Net DLL的類對象的代碼行。 我似乎無法做到這一點。
注意:我查看了論壇和MSDN文檔,我主要找到在.NET中調用VB6 DLL的解決方案; 不幸的是,這與我們需要做的事情相反。
注意:我已經注冊了已編譯的.Net(C#)程序集,並在VB6項目中引用了它。
然而,我發現這兩個頁面似乎是我們需要的,但它是一個用於調用使用VS2005生成的.NET(c#)dll的解決方案。 當使用VS2010生成.NET(C#)dll時,這似乎不起作用。
如果有人可以提出任何建議或指導我某個地方,我可以得到一個,這將是偉大的。
謝謝
解決方案感謝@HansPassant,我找到了解決方案。 要調試包含C#.NET程序集的VB6項目,需要通過“ regasm ”和“ gacutil ”注冊.NET dll,然后確保在開始調試之前關閉並重新打開VB6應用程序。
這不是問題,VB6使用自己的調試器,不會妨礙任何其他調試器,包括C#代碼的托管調試器。
從C#類庫項目開始,確保將其選為啟動項目。 Project + Properties,Debug選項卡。 選擇“啟動外部程序”選項,然后輸入VB6 IDE的路徑。 通常是c:\\ program files \\ microsoft visual studio \\ vb98 \\ vb6.exe。 在要調試的方法上設置斷點。
按F5鍵,VB6 ide將開始運行。 加載或創建您的vb6項目。 請注意如何在上一步中添加.vbp項目的路徑,以便它自動加載項目。
像往常一樣開始調試vb6項目。 一旦它開始使用你的[ComVisible] C#類,你的C#程序集就會被加載。 當您的vb6代碼調用該方法時,斷點將會出現。 根據需要來回切換。 請注意,您不能單步從vb6到C#代碼,您必須設置斷點以使調試器停止。
啊,以可調試的方式從VB6使用.NET的奇跡。
一種方法是單獨調試每個:
在編譯C#DLL並將其添加為VB6項目的引用之后,可以在IDE中完成VB6代碼的調試。
通過編譯VB6項目並在項目屬性中將其用作要運行的可執行文件,可以在Visual Studio中使用VB6主機調試DLL。
在某些情況下,這比設置環境以同時調試兩者更簡單/更快。
這種方法需要預先至少具有每個工作的框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.