CORRECÇÃO: Recebe uma mensagem de erro "System.OverFlowException" quando chamar um método de um COM (Component Object Model) DLL de um programa do Visual C# .NET ou um programa do Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 329658 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Poderá receber a seguinte mensagem de erro:
Ocorreu uma excepção não processada do tipo 'System.OverflowException' no client.exe
Obter informações adicionais: Sobrecarga
Este problema poderá ocorrer quando se verificam as seguintes condições:
  • Chamar um método definido num Microsoft COM Component Object Model () DLL de um programa do Microsoft Visual C# .NET ou um programa do Microsoft Visual Basic. NET.
  • No código de aplicação, o método encontra depois da função System.Math.Asin . A função System.Math.Asin devolve não é um número (NaN) .

Causa

Este problema ocorre porque o novo common language runtime e a alça de DLL do Microsoft Visual Basic 6.0 ou Microsoft Visual C++ DLL a flutuante ponto variáveis inconsistente.

Resolução

Para resolver este problema, obtenha o service pack mais recente para o Microsoft. .NET Framework 1.0. Para transferir o service pack mais recente, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://www.microsoft.com/downloads/details.aspx?familyid=6978D761-4A92-4106-A9BC-83E78D4ABC5B&displaylang=en

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a". Este problema foi corrigido pela primeira vez no Microsoft .NET Framework 1.0 Service Pack 3.

Mais Informação

Passos para reproduzir o comportamento

Crie uma DLL COM no Visual Basic 6.0

  1. Inicie o Visual Basic 6.0.
  2. No caixa de diálogo Novo projecto , no separador ' Novo ', clique em ActiveX DLL e, em seguida, clique em Abrir . Por predefinição, um ficheiro de módulo de classe é denominado Aula1 aparece.
  3. Adicione o seguinte código ao ficheiro de módulo de classe Aula1:
    Option Explicit
    Public Function Avg() As Double
    Avg = 0/1
    End Function
  4. No menu ficheiro , clique em criar Project1.dll . A caixa de diálogo Criar projecto é apresentada.
  5. Localizar uma pasta para guardar Project1.dll ficheiro e clique em OK para guardar o ficheiro.

Criar uma aplicação cliente

  1. Inicie o Visual Studio NET..
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto . A caixa de diálogo novo projecto é apresentada.
  3. Clique em Visual C# Projects em Project Types e, em seguida, clique em Aplicação de consola em modelos .
  4. Na caixa nome , escreva Client e, em seguida, clique em OK . Por predefinição, é criado um ficheiro denominado Class1.cs.
  5. Substitua o código existente com o seguinte código:
    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. No menu projecto , clique em Adicionar referência . A caixa de diálogo Adicionar referência do é apresentada.
  7. Clique em Procurar . A caixa de diálogo Seleccionar componentes é apresentada.
  8. Localize o ficheiro Project1.dll que criou na secção "Criar uma DLL COM", clique em Project1.dll e, em seguida, clique em Abrir .
  9. Na caixa de diálogo Adicionar referência do , clique em OK para adicionar a DLL ao projecto de cliente.

Criar e, em seguida, execute o projecto

  1. No menu criar , clique em criar soluções .
  2. Prima CTRL + F5 para executar a aplicação sem um depurador. A caixa de diálogo Just-In-Time depuração é apresentada.
  3. Clique em Sim . A caixa de diálogo anexar para execução é apresentada.
  4. Clique em OK .

    Poderá detectar o comportamento mencionado na secção "Sintomas".
Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Referências

Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
817248Como chamar uma assemblagem de Visual Basic .NET a partir do Visual Basic 6.0 e chamar um componente COM Visual Basic a partir do Visual Basic .NET
315847Como utilizar componentes ActiveX no Visual Studio .NET com o Visual Basic .NET

Propriedades

Artigo: 329658 - Última revisão: 30 de dezembro de 2006 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbcominterop kbclient kbfunctions kbconsole kbbug kbfix kbqfe kbnetframe100presp3fix kbprb KB329658 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 329658
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

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