如何實現VB和VC的聯合除錯

2021-04-01 01:06:39 字數 1501 閱讀 7748

我經常會遇到這種情況:

我用vc寫了乙個dll,然後用vb寫exe。

我現在想除錯我的dll和exe,在vb環境下除錯,可是我無法跳入dll函式的內部,無法在dll內部除錯。

有沒有乙個辦法能讓我實現vb和vc聯調,當我在vb環境中需要跳入dll函式時,進入vc環境,在vc中除錯,這樣我就可以檢視變數值、設定斷點,然後等函式返回時又回到vb環境下繼續除錯。

後來經過我自己的一番摸索,終於實現了vb、vc聯調。

這個方法是以vc為主環境,vb為副環境,這是因為dll是由vc編寫的,而在除錯dll的時候一般會讓我們指定乙個exe。如果dll是vb編寫的,我想應該是以vb為主環境(沒有測試過)。

1.  建立乙個vb standard exe工程project1.vbp,在這個工程中呼叫vc編寫的動態連線庫中的函式。

2.  建立乙個vc dll工程testdll,編寫**實現函式輸出。建議把整個工程目錄放置到project1.vbp所在的目錄。

3.  設定vc工程,這一步是非常重要的,是實現聯調的關鍵。

a)         更改general選項卡中output files的路徑,指定到project1.vbp所在的目錄。由於我把工程目錄放在了project1.vbp目錄下,因此我這裡用相對路徑「../」(其實就是project1.vbp所在的目錄)。

b)        更改debug選項卡中executable for debug session:為你電腦中vb6.exe;更改working directory為project1.vbp所在的目錄;在program arguments:中填寫project1.vbp,這個引數其實是傳給vb的,讓vb開啟project1.vbp,如果增加引數」/r」,那麼在vb啟動後立即開始(相當於按f5),如果不增加引數」/r」,那麼需要手動開始。

c)        確認你的link選項卡中輸出dll的路徑及dll名稱,把他設定到project1.vbp所在的目錄:

4.  在你的dll源程式(vc中)中設定斷點,按f5, go!怎麼樣,vb環境已經執行起來了,工程project1.vbp已經開啟了吧!如果你在3)b.的program arguments:中指定了」/r」引數,那麼這個時候程式已經開始執行了,如果你沒有指定這個引數,那麼你可以先在vb環境中設定斷點,然後在呼叫dll函式上設定斷點,按f5,start!如果在vb中遇到斷點,程式就會停下,然後按f8,step into! 發現什麼了,哈哈,vc環境主動切換到前面,而且當前的箭頭已經指向了被呼叫函式了,這個時候,已經進入vc環境了,你想怎麼除錯都可以!當被呼叫函式要結束時,請按f11,step out,否則會有一段彙編**。這個時候vb環境有主動切換到前面,又進入vb除錯環境了!

在用vc編寫dll時要注意,vc會對輸出函式名進行一些修飾,所以還是需要在def檔案中明確輸出函式名。這個方法對於其他的環境之間(如delphi-vc、delphi-vb)是否適用我還沒有測試過,請大家在需要時自己測試。

vb呼叫 vc 編寫的DLL 聯合除錯

vc 2008 vs 編寫的dll vb6 編寫 的exe 在dll專案中進行斷點除錯,見下方 在 解決方案資源管理器 中選擇 dll 專案。從 檢視 選單中,選擇 屬性頁 在 project 屬性頁 視窗的 配置 下拉列表中,選擇 除錯 開啟 配置屬性 資料夾並選擇 除錯 類別。在 要啟動的偵錯程...

C 和C 生成的dll原始碼聯合除錯

前提 dll和c 工程都有原始碼 第一步 開啟c 工程 第二步 新增dll工程 第三步 設定dll工程為debug模式,並右擊生成,生成的dll會在c 解決方案裡面 第四步 設定c 工程除錯方式為本地除錯,且為debug模式 第五步 設定c 呼叫dll的路徑,dll路徑在c 解決方案中 dllimp...

vc 如何實現遠端除錯

假設除錯機ip 192.168.0.182 遠端機ip 192.168.0.161 遠端機為除錯機分配許可權,使除錯機可以使用遠端桌面登陸到遠端機器上 這樣除錯起來方便 除錯機上安裝visual studio net 2003 共享除錯機上的visual studio 上的遠端除錯目錄 以我的機器為...