在已編譯的專案原因錯誤 FIX: 八個或多個 ActiveX DLL

文章翻譯 文章翻譯
文章編號: 192653 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

徵狀

Visual Basic 專案群組包含至少 8 個 ActiveX DLL 專案和一個標準 EXE 專案。標準 EXE 專案會建立,並釋放 ActiveX DLL 檔案。專案群組會編譯成 DLL 和 EXE 檔。執行執行檔。

第一次您建立並釋放 ActiveX DLL] 檔案在程式執行成功。不過,第二次您建立並釋放 ActiveX DLL] 檔案的應用程式錯誤,就會發生並顯示下列訊息:
在指令"0x6602c2c5 參考 0x010b008c"記憶體。[記憶體無法 「 寫入 」。

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。

這個 Bug 已經在 Visual Studio 6.0 Service Pack 3 中獲得修正。如需有關 Visual Studio Service Pack 的詳細資訊,請參閱下列文件 「 Microsoft 知識庫 」 中:
194022資訊: Visual Studio 6.0 服務封裝什麼、 何處,為何

194295HOWTO: 告訴安裝 Visual Studio 6.0 Service Pack

其他相關資訊

只有在已編譯的專案執行 Visual Basic 在 IDE 之外時,才,會發生 Bug。當您透過 Visual Basic IDE 執行專案時,就不會發生 Bug。

本節顯示如何建立範例專案,示範 Bug 行為。區段會假設您熟悉建立 ActiveX DLL 專案、 標準 EXE 專案、 專案群組和編譯成可執行檔的這些檔案。

重製行為的步驟

範例專案包含八個將用於標準 EXE 專案的 ActiveX DLL 專案。標準 EXE 專案然後編譯成可執行檔。然後執行可執行檔示範 Bug 行為。

若要建立八個 ActiveX DLL 專案:
  1. 在 Visual Basic 中啟動新的 ActiveX DLL 專案。預設會建立類別 1。
  2. 將下列程式碼複製到程式碼] 視窗的類別 1:
    Option Explicit
          Public Sub DoNothing()
    
          End Sub
    					
  3. 將這個類別模組儲存為 Class1.cls 和 Project1.vbp 為此專案。
  4. 將另一個 ActiveX DLL 專案加入至專案群組。預設會建立類別 1。從這個專案移除類別 1 類別模組,並新增為新的 ActiveX DLL 的 Project1.vbp 建立類別 1 類別模組的專案。
  5. 將這個專案儲存為 Project2.vbp。
  6. 重複步驟 4 和 5,以將具有相同的類別 1 類別模組的六個其他 ActiveX DLL 專案新增至專案群組。將這些專案儲存為透過 Project8.vbp Project3.vbp。

    您剛建立的專案群組與儲存為 Project1.vbp Project8.vbp 八個 ActiveX DLL 專案。每個 ActiveX DLL 專案會參考相同的類別 1 類別模組中 Project1.vbp 建立。

    下一步是建立使用八個 ActiveX DLL 專案的標準 EXE 專案。
若要建立標準 EXE 專案:
  1. 將新的標準 EXE 專案加入至相同的專案群組包含八個 ActiveX DLL 專案。預設會建立 Form1。
  2. Form1 新增一個指令按鈕。
  3. 將下列程式碼複製到 Form1 表單的 [程式碼] 視窗:
    
          Option Explicit
    
          Private Sub Command1_Click()
             Dim o(8) As Object
             Dim i As Integer
             Dim strProgID As String
    
             For i = 1 To 8
                strProgID = "Project" & i & ".Class1"
                Set o(i) = CreateObject(strProgID)
                o(i).donothing
                Set o(i) = Nothing
             Next
             MsgBox "Done"
          End Sub
    					
  4. 將專案儲存為 Project9.vbp。
  5. 將 Project9.vbp 設定為向上專案開始。在 [專案總管] Project9.vbp] 上按一下滑鼠右鍵,並再按一下 [設定為 [啟動]。Project9.vbp 中會出現在 [專案總管] 中的粗體。
  6. 按下 F5 鍵啟動 IDE 中執行該專案。按 Form1 幾次 [Command1 按鈕,但請注意它正常運作。
  7. 編譯專案群組。
  8. 在 IDE 之外執行的 Project9.exe。Form1 表單會出現。按一下 [Command1。訊息方塊隨即出現。按一下 [確定] 以關閉訊息方塊。 請再按一下 Command1。請注意應用程式錯誤,就會發生,並且顯示下列訊息方塊:
    在指令"0x6602c2c5 參考 0x010b008c"記憶體。[記憶體無法 「 寫入 」。

屬性

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

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com