FIX: 您一個 System.OverFlowException 」 時,收到錯誤訊息從 Visual C#.NET 程式或 Visual Basic.NET 程式呼叫方法的一個元件物件模型 (COM) DLL

文章翻譯 文章翻譯
文章編號: 329658 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

您可能會收到下列錯誤訊息:
client.exe 中發生未處理的例外狀況的型別 'System.OverflowException'
其他資訊: 溢位
當下列情況成立時,可能就會發生這個問題:
  • 您可呼叫從 Microsoft Visual C#.NET 程式或 Microsoft Visual Basic.NET 程式定義中一個 Microsoft 元件物件模型 (COM) DLL 的方法。
  • 在應用程式] 程式碼方法是位於之後 System.Math.Asin 函式。System.Math.Asin 函式會傳回 不是數字 (NaN)

發生的原因

新的公用語言執行時間和浮點 Microsoft Visual Basic 6.0 DLL 或 Microsoft Visual C++ DLL 控制代碼點變數不一致,就會發生這個問題。

解決方案

如果要解決這個問題,取得 Microsoft 最新的 Service Pack。NET Framework 1.0。如果要下載最新的 Service Pack,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站:
http://www.microsoft.com/downloads/details.aspx?familyid=6978D761-4A92-4106-A9BC-83E78D4ABC5B&displaylang=en

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。 這個問題已經在 Microsoft 中先獲得修正.NET Framework 1.0 Service Pack 3。

其他相關資訊

重現這個問題的步驟

在 Visual Basic 6.0 中建立 COM DLL

  1. 啟動 Visual Basic 6.0。
  2. [新增專案] 對話方塊的 [新增] 索引標籤上按一下 ActiveX DLL,然後按一下 [開啟舊檔]。在預設情況下,顯示名為類別 1 的類別模組檔案。
  3. 將下列程式碼加入至類別 1 的類別模組檔案:
    Option Explicit
    Public Function Avg() As Double
    Avg = 0/1
    End Function
  4. 在 [檔案] 功能表上按一下 製成 Project1.dll製成專案] 對話方塊隨即出現。
  5. 找出要儲存 Project1.dll 資料夾檔案,然後按一下 [確定] 以儲存檔案。

建立用戶端應用程式

  1. 啟動 Visual Studio.NET。
  2. 在 [檔案] 功能表上指向 [新增],然後按一下 [專案]。出現 [新增專案] 對話方塊。
  3. 在 [專案類型 下, 按一下 [Visual C# 專案,然後按一下 [範本] 下方的 [主控台應用程式
  4. 在 [名稱] 方塊中鍵入 用戶端,再按 [確定]。預設情況下,會建立名為 Class1.cs 的檔案。
  5. 現有的程式碼取代下列程式碼:
    using System;
    using Project1;
    using System.Diagnostics;
    
    namespace Client
    {	
    	class Class1
    	{		
    		[STAThread]
    		static void Main(string[] args)
    		{
    			
    			Class1Class T = new Class1Class();
    			Console.WriteLine(T.Avg()) ;
    
    			double D = Math.Asin(2); 
    			Console.WriteLine(T.Avg());    			
    		}		
    	}
    }
  6. 在 [專案] 功能表上按一下 新增參考。出現 [加入參考] 對話方塊。
  7. 按一下 [瀏覽]。選取的元件] 對話方塊隨即出現。
  8. 找出您在 「 建立 COM DLL 」 一節中所建立的 Project1.dll 檔案、 按一下 Project1.dll,然後再按一下 [開啟舊檔]。
  9. 在 [加入參考] 對話方塊按一下 [確定],將 DLL 加入至您的用戶端專案]。

建置並執行專案

  1. 在 [建置] 功能表上按一下 建置方案
  2. 按下 CTRL + F5 執行應用程式而不是偵錯工具。 出現 [Just-In-Time 偵錯] 對話方塊。
  3. 按一下 [是]附加至處理序] 對話方塊隨即出現。
  4. 按一下 [確定]

    您可能會發現 < 徵狀 > 一節所提到的行為。
如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

?考

如需詳細資訊按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中發行項]:
817248如何從 Visual Basic 6.0 中呼叫 Visual Basic.NET 組件,並從 Visual Basic.NET 呼叫 Visual Basic COM 元件
315847如何在使用 Visual Basic.NET 的 Visual Studio.NET 中使用 ActiveX 元件

屬性

文章編號: 329658 - 上次校閱: 2006年12月30日 - 版次: 1.3
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0
關鍵字:?
kbmt kbcominterop kbclient kbfunctions kbconsole kbbug kbfix kbqfe kbnetframe100presp3fix kbprb KB329658 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:329658
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。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