Update: Fehlermeldung "System.OverFlowException" Fehler beim Aufrufen einer Methode von einem Component Object Model (COM) DLL von Visual C# .NET Programm oder ein Programm Visual Basic .NET

Veralteter Haftungsausschluss für KB-Inhalte

Dieser Artikel wurde für Produkte geschrieben, für die Microsoft keinen Support mehr anbietet. Deshalb wird dieser Artikel im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.

Problembeschreibung

Sie erhalten die folgende Fehlermeldung angezeigt:
Der Typ "System.OverflowException" Ausnahmefehler in client.exe
Weitere Informationen: Überlauf
Dieses Problem kann auftreten, wenn Folgendes zutrifft:
  • Sie rufen eine Methode, die von einem Programm Microsoft Visual C# .NET oder Microsoft Visual Basic .NET Programm in eine Microsoft Component Object Model (COM) DLL definiert ist.
  • Im Anwendungscode befindet sich die Methode nach der System.Math.Asin -Funktion. Die System.Math.Asin -Funktion gibt keine Zahl ist (NaN).

Ursache

Dieses Problem tritt auf, weil neue common Language Runtime und die DLL des Microsoft Visual Basic 6.0 oder Microsoft Visual C++-DLL Handle die bewegliche Variablen inkonsistent zeigen.

Problemlösung

Um dieses Problem zu beheben, beziehen Sie das neueste Servicepack für Microsoft. NET Framework 1.0. Zum Herunterladen des neuesten Servicepacks finden Sie auf der folgenden Website von Microsoft Developer Network (MSDN):
http://www.microsoft.com/downloads/details.aspx?familyid=6978D761-4A92-4106-A9BC-83E78D4ABC5B&displaylang=en

Status

Microsoft hat bestätigt, dass es ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind. Dieses Problem wurde erstmals in Microsoft.NET Framework 1.0 Servicepack 3.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

Erstellen einer COM-DLL in Visual Basic 6.0

  1. Starten Sie Visual Basic 6.0.
  2. Klicken Sie im Dialogfeld Neues Projekt auf der
    Neue Registerkarte auf ActiveX-DLLund klicken Sie dann auf
    Wird geöffnet. Standardmäßig wird eine Klassendatei für das Modul mit der Bezeichnung Class1.
  3. Die Datei Class1-Klasse Modul den folgenden Code hinzufügen:
    Option ExplicitPublic Function Avg() As Double
    Avg = 0/1
    End Function
  4. Klicken Sie im Menü Datei auf Project1.dll stellen. Das Dialogfeld Projekt erstellen wird angezeigt.
  5. Suchen Sie einen Ordner zum Speichern der Datei "Project1.dll", und klicken Sie dann auf OK , um die Datei zu speichern.

Erstellen einer Clientanwendung

  1. Starten Sie Visual Studio .NET.
  2. Zeigen Sie im Menü Datei auf
    Neu, und klicken Sie dann auf Projekt. Das Dialogfeld Neues Projekt angezeigt wird.
  3. Klicken Sie auf Visual C#-Projekte
    Projekttypen Konsolenanwendungsprojekt unter Vorlagenauf.
  4. Geben Sie im Feld Name
    Client, und klicken Sie dann auf OK. Eine Datei mit dem Namen Class1.cs wird standardmäßig erstellt.
  5. Ersetzen Sie den vorhandenen Code durch folgenden Code:
    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. Klicken Sie im Menü Projekt auf Verweis hinzufügen. Das Dialogfeld Verweis hinzufügen wird angezeigt.
  7. Klicken Sie auf Durchsuchen. Das Dialogfeld Komponente auswählen wird angezeigt.
  8. Suchen Sie "Project1.dll"-Datei, die im Abschnitt "Erstellen einer COM-DLL" erstellt und auf "Project1.dll"klicken
    Wird geöffnet.
  9. Klicken Sie im Dialogfeld Verweis hinzufügen auf
    OK , das Client-Projekt die DLL hinzufügen.

Erstellen und Ausführen des Projekts

  1. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
  2. Drücken Sie STRG + F5, um die Anwendung ohne Debugger auszuführen. Das Dialogfeld wird angezeigt.
  3. Klicken Sie auf Ja. Das Dialogfeld an den Prozess anhängen .
  4. Klicken Sie auf OK.

    Möglicherweise bemerken Sie das Verhalten, das im Abschnitt "Symptome" genannt.
Klicken Sie für Weitere Informationen auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
824684 Erläuterung von der standardmäßigen Standardbegriffen bei Microsoft Softwareupdates

Referenzen

Klicken Sie für weitere Informationen auf die folgenden Artikelnummern, um die betreffenden Artikel in der Microsoft Knowledge Base anzuzeigen:
Wie rufen eine Visual Basic .NET Assembly aus Visual Basic 6.0 und Visual Basic-COM-Komponente von Visual Basic .NET 817248

315847 Verwendung von ActiveX-Komponenten in Visual Studio .NET mit Visual Basic .NET

Eigenschaften

Artikelnummer: 329658 – Letzte Überarbeitung: 16.01.2017 – Revision: 1

Feedback