文章編號: 200034 - 上次校閱: 2004年7月1日 - 版次: 2.1

如何偵錯 Visual Basic 處理序外的伺服器,使用 Visual C++

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

結論

藉由使用 Microsoft Visual C++ 偵錯工具偵錯處理序出伺服器最多需要不同組比偵錯中處理序伺服器 (DLL 和 OCXs)。本文將告訴您,如何使用 Microsoft Visual C++ 偵錯工具來偵錯 Visual Basic ActiveX 出處理序的伺服器元件。

如需如何使用 Visual C++ 偵錯工具來偵錯 Visual Basic 同處理序伺服器,以及標準的可執行檔的詳細資訊按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
166275? (http://support.microsoft.com/kb/166275/EN-US/ ) 如何偵錯 VC + + 中的原生程式碼 Visual Basic 元件

其他相關資訊

下列的四個區段的前兩個描述如何能建置 Visual Basic ActiveX 伺服器應用程式 (activex.exe) 和 Visual Basic 用戶端應用程式 (standard.exe)。第三個區段提供在步驟說明如何偵錯 ActiveX 伺服器應用程式和用戶端應用程式透過 Visual C++ 偵錯工具。最後一節提供命令列選項啟動的處理序外的伺服器的詳細資訊。

建立示範伺服器

  1. 啟動 Visual Basic、 建立新的 ActiveX 執行檔專案,然後 DemoSvr 來重新命名專案。
  2. 將下列程式碼加入至預設類別 (類別 1):
    Dim strProp As String
    Public Property Let StringProp(s As String)
        strProp = s
    End Property
    Public Property Get StringProp() As String
       StringProp = strProp
    End Property
    					
  3. 在 [專案] 功能表上選取 DemoSvr 內容,然後再切換至 [編譯] 索引標籤請確定已選取 [編譯原生程式碼]、 [建立符號偵錯資訊,] 和 [否最佳化
  4. 儲存並編譯專案,以建立 DemoSvr.exe。

建立示範用戶端

  1. 啟動 Visual Basic、 建立標準 EXE 專案,然後 DemoCli 來重新命名專案。
  2. 在 [專案] 功能表上, 選取 [參考]。
  3. 尋找並檢查 DemoSvr,並確定指向您建置 DemoSvr.exe 檔案。按一下 [確定]
  4. 命令按鈕 控制項加入至預設表單 (Form1)。
  5. 將下列程式碼加入 Form1 的模組:
    Private Sub Command1_Click()
        Dim objServer As New DemoSvr.Class1
        objServer.StringProp = "Test"
        Command1.Caption = objServer.StringProp
        Set objServer = Nothing
    End Sub
    					
  6. 如果要進行偵錯用戶端也設定 DemoCli 為那些在 DemoSvr 相同的 [編譯] 選項。要如此,在 [專案] 功能表上,選取 [DemoCli 內容,然後切換至的 編譯] 索引標籤,請確定該 編譯原生程式碼建立符號偵錯資訊,且 否最佳化 會選取。
  7. 儲存並編譯專案,以建立 DemoCli.exe。

偵錯設定

  1. 啟動 Visual C++ (msdev.exe)。
  2. 開啟 DemoSvr.exe 為工作區或檔案 (作為自動開啟)。
  3. 開啟由如下所示的箭號指向垂線 Class1.cls 檔案及位置中斷點。(將游標放在列上,再按 F9 鍵)。
          Public Property Let StringProp(s As String)
    ==>     strProp = s
          End Property
          Public Property Get StringProp() As String
    ==>      StringProp = strProp
          End Property
    					
  4. 在 [專案] 功能表上, 選取 [設定]。
  5. 在 [索引 偵錯 標籤上下程式引數,鍵入 / 內嵌

    注意: 有關的詳細資訊,/ 內嵌引數,請參閱 < 命令列引數的本機伺服器 > 一節。
  6. 按下 F5 鍵來啟動伺服器。這個時候 DemoSvr.exe 會載入並等待任何潛在的用戶端連線。
  7. 開始 [DemoCli.exe,然後按一下 [Command1 啟動偵錯。附註您叫用 strProp = s 中斷點。
或者,您可以先啟動伺服器,並再將偵錯工具附加至它,如下所示:
  1. 從命令列啟動 DemoSvr.exe 藉由輸入 demosvr / 內嵌

    一旦執行此命令後,您可以看到 DemoSvr.exe 載入 [工作管理員] 中,即使沒有執行任何用戶端處理序。
  2. 啟動 Visual C++ (msdev.exe)。
  3. 開啟 Class1.cls 並放入您的中斷點和以前一樣。
  4. 在 [建置] 功能表上選取 [開始偵錯,然後選擇 [附加至處理序]。
  5. 從處理序清單中選取 DemoSvr
  6. 如所示,請執行 DemoCli.exe。
如果要在用戶端進行偵錯您需要啟動的 Visual C++ (msdev.exe) 另一個執行個體,如下所示:
  1. 啟動 Visual C++ 和載入伺服器與前述步驟中所示的類別模組。將您的中斷點。
  2. 啟動新的執行個體的 Visual C++ (msdev.exe)。
  3. 開啟 DemoCli.exe 為工作區。
  4. 開啟 Form1.frm,然後再將中斷點放在您想要的位置。
  5. 按下 F5 鍵以啟動用戶端。使用 F10 鍵來逐步透過一條線和逐步執行至呼叫 F11 鍵。

本機伺服器的命令列引數

有三個命令列選項可用於啟動處理序外的伺服器:
  • /regserver-會告知伺服器來註冊本身和其相關聯的型別程式庫。

  • /unregserver-會告知伺服器以取消註冊本身和其相關聯的型別程式庫項目。

  • / 內嵌-將出處理序伺服器保留在記憶體等待第一個用戶端連接中。會在實際上 COM 服務傳遞此引數至程序外的伺服器嘗試啟動它時。

?考

取得更多資訊有關偵錯 VC + + 中的 Visual Basic ActiveX 元件按一下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
166275? (http://support.microsoft.com/kb/166275/EN-US/ ) 如何偵錯 VC + + 中的原生程式碼 Visual Basic 元件
您也可以從 Microsoft 按看看第 5 章中 「 內部 OLE" Kraig Brokschmidt 由。

這篇文章中的資訊適用於:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
關鍵字:?
kbmt kbhowto KB200034 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:200034? (http://support.microsoft.com/kb/200034/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。