Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

EntryPointNotFoundException (Clase)

Excepción que se produce cuando se produce un error al intentar cargar una clase debido a la ausencia de un método de entrada.

System.Object
  System.Exception
    System.SystemException
      System.TypeLoadException
        System.EntryPointNotFoundException

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class EntryPointNotFoundException : TypeLoadException

El tipo EntryPointNotFoundException expone los siguientes miembros.

  NombreDescripción
Método públicoCompatible con XNA FrameworkEntryPointNotFoundException()Inicializa una nueva instancia de la clase EntryPointNotFoundException.
Método públicoCompatible con XNA FrameworkEntryPointNotFoundException(String)Inicializa una nueva instancia de la clase EntryPointNotFoundException con un mensaje de error especificado.
Método protegidoEntryPointNotFoundException(SerializationInfo, StreamingContext)Inicializa una nueva instancia de la clase EntryPointNotFoundException con datos serializados.
Método públicoCompatible con XNA FrameworkEntryPointNotFoundException(String, Exception)Inicializa una nueva instancia de la clase EntryPointNotFoundException con un mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.
Arriba

  NombreDescripción
Propiedad públicaDataObtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario acerca de la excepción. (Se hereda de Exception).
Propiedad públicaHelpLinkObtiene o establece un vínculo al archivo de ayuda asociado a esta excepción. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkHResultObtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkInnerExceptionObtiene la instancia Exception que produjo la excepción actual. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkMessageObtiene el mensaje de error para esta excepción. (Se hereda de TypeLoadException).

En XNA Framework 3.0, este miembro se hereda de Exception.Message.
Propiedad públicaSourceDevuelve o establece el nombre de la aplicación o del objeto que generó el error. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkStackTraceObtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. (Se hereda de Exception).
Propiedad públicaTargetSiteObtiene el método que produjo la excepción actual. (Se hereda de Exception).
Propiedad públicaTypeNameObtiene el nombre completo del tipo que provoca la excepción. (Se hereda de TypeLoadException).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoCompatible con XNA FrameworkFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkGetBaseExceptionCuando se reemplaza en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores. (Se hereda de Exception).
Método públicoCompatible con XNA FrameworkGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetObjectDataEstablece el objeto SerializationInfo con el nombre de la clase, el nombre del método, el Id. del recurso y la información adicional de la excepción. (Se hereda de TypeLoadException).
Método públicoCompatible con XNA FrameworkGetTypeObtiene el tipo en tiempo de ejecución de la instancia actual. (Se hereda de Exception).

En XNA Framework 3.0, este miembro se hereda de Object.GetType().
Método protegidoCompatible con XNA FrameworkMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkToStringCrea y devuelve una representación de cadena de la excepción actual. (Se hereda de Exception).
Arriba

  NombreDescripción
Evento protegidoSerializeObjectStateSe produce cuando se serializa una excepción para crear un objeto de estados de excepción que contiene datos serializados sobre la excepción. (Se hereda de Exception).
Arriba

Se produce una excepción EntryPointNotFoundException cuando el Common Language Runtime no puede cargar un ensamblado porque no puede identificar el punto de entrada del ensamblado. Esta excepción se produzca en condiciones siguientes:

  • Common Language Runtime no encuentra un punto de entrada de la aplicación (normalmente un método Main ) en un ensamblado ejecutable. El punto de entrada de la aplicación debe ser un método global o static que no tiene ningún parámetro o una matriz de cadenas como único parámetro. El punto de entrada puede devolver void, o puede devolver un código de salida Int32 o UInt32 . Un ensamblado de la aplicación no puede definir más de un punto de entrada.

  • La llamada a una función en Windows DLL no puede resolverse porque la función no se encuentra. En el ejemplo siguiente, se produce una excepción EntryPointNotFoundException porque User32.dll no incluye una función denominada GetMyNumber.

    
    using System;
    using System.Runtime.InteropServices;
    
    public class Example
    {
       [DllImport("user32.dll")]
       public static extern int GetMyNumber();
    
       public static void Main()
       {
          try {
             int number = GetMyNumber();
          }
          catch (EntryPointNotFoundException e) {
             Console.WriteLine("{0}:\n   {1}", e.GetType().Name,  
                               e.Message);
          } 
       }
    }
    // The example displays the following output:
    //    EntryPointNotFoundException:
    //       Unable to find an entry point named 'GetMyNumber' in DLL 'User32.dll'.
    
    
    
  • La llamada a una función en Windows DLL no puede resolverse porque no coincide con el nombre usado en la llamada al método un nombre encontrado en el ensamblado. Con frecuencia, esto ocurre porque el campo DllImportAttribute.ExactSpelling implícita o explícitamente se establece en true, el método denominado incluye uno o más parámetros de cadena y tiene ANSI y una versión Unicode, y el nombre usado en la llamada al método no corresponde al nombre de esta versión ANSI o Unicode. El ejemplo siguiente proporciona una ilustración intentando llamar a la función MessageBox de Windows en User32.dll. Como la primera definición del método especifica CharSet.Unicode para el cálculo de referencias de cadenas, el lenguaje común busca la versión con caracteres anchos de la función, MessageBoxW, en lugar del nombre usado en la llamada al método, MessageBox. La segunda definición de método soluciona este problema llamando a MessageBoxW en lugar de MessageBox .

    
    using System;
    using System.Runtime.InteropServices;
    
    public class Example
    {
       [DllImport("user32.dll", CharSet = CharSet.Unicode, ExactSpelling = true )]
       public static extern int MessageBox(IntPtr hwnd, String text, String caption, uint type);
    
       [DllImport("user32.dll", CharSet = CharSet.Unicode, ExactSpelling = true )]
       public static extern int MessageBoxW(IntPtr hwnd, String text, String caption, uint type);
    
       public static void Main()
       {
          try {
             MessageBox(new IntPtr(0), "Calling the MessageBox Function", "Example", 0);
          }
          catch (EntryPointNotFoundException e) {
             Console.WriteLine("{0}:\n   {1}", e.GetType().Name,  
                               e.Message);
          }
    
          try {
             MessageBoxW(new IntPtr(0), "Calling the MessageBox Function", "Example", 0);
          }
          catch (EntryPointNotFoundException e) {
             Console.WriteLine("{0}:\n   {1}", e.GetType().Name,  
                               e.Message);
          }
       }
    }
    
    
    
  • Está intentando llamar a una función en una biblioteca de vínculos dinámicos por su nombre sencillo en lugar de su nombre representativo. Normalmente, el compilador de C++ genera un nombre representativo para las funciones de archivos DLL. Por ejemplo, el siguiente código de C++ define una función denominada Double en una biblioteca denominada TestDll.dll.

    
    __declspec(dllexport) int Double(int number)
    {
    	return number * 2;
    }
    
    
    

    Cuando el código de los el ejemplo siguiente se intenta llamar a la función, una excepción EntryPointNotFoundException se produce porque la función Double no se encuentra.

    
    using System;
    using System.Runtime.InteropServices;
    
    public class Example
    {
       [DllImport("TestDll.dll")]
       public static extern int Double(int number);
    
       public static void Main()
       {
          Console.WriteLine(Double(10));
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: System.EntryPointNotFoundException: Unable to find 
    //    an entry point named 'Double' in DLL '.\TestDll.dll'.
    //       at Example.DoubleNum(Int32 number)
    //       at Example.Main()
    
    
    

    Sin embargo, si se invoca la función utilizando su nombre representativo (en este caso, ?Double@@YAHH@Z), la llamada de función tiene éxito, como en el ejemplo siguiente.

    
    using System;
    using System.Runtime.InteropServices;
    
    public class Example
    {
       [DllImport("TestDll.dll", EntryPoint = "?Double@@YAHH@Z")]
       public static extern int Double(int number);
    
       public static void Main()
       {
          Console.WriteLine(Double(10));
       }
    }
    // The example displays the following output:
    //    20
    
    
    

    Puede encontrar los nombres representativos de las funciones exportadas por el archivo DLL mediante una utilidad como Dumpbin.exe.

  • Está intentando llamar a un método de un ensamblado administrado como si fuera una biblioteca de vínculos dinámicos no administrada. Para verlo en acción, compile el siguiente ejemplo en un ensamblado denominado StringUtilities.dll.

    
    using System;
    
    public static class StringUtilities
    {
       public static String SayGoodMorning(String name)
       {
          return String.Format("A top of the morning to you, {0}!", name);
       }
    }
    
    
    

    Después se compile y ejecute el ejemplo siguiente, que intenta llamar al método StringUtilities.SayGoodMorning en la biblioteca de vínculos dinámicos de StringUtilities.dll como si fuera código no administrado. El resultado es una excepción EntryPointNotFoundException .

    
    using System;
    using System.Runtime.InteropServices;
    
    public class Example
    {
       [DllImport("StringUtilities.dll", CharSet = CharSet.Unicode )]
       public static extern String SayGoodMorning(String name);
    
       public static void Main()
       {
          Console.WriteLine(SayGoodMorning("Dakota"));
       }
    }
    // The example displays the following output:
    //    Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point 
    //    named 'GoodMorning' in DLL 'StringUtilities.dll'.
    //       at Example.GoodMorning(String& name)
    //       at Example.Main()
    
    
    

    Para eliminar la excepción, agregue una referencia al ensamblado administrado y busque el método StringUtilities.SayGoodMorning sencillamente que se obtiene acceso a cualquier otro método del código administrado, como en el ejemplo siguiente.

    
    using System;
    
    public class Example
    {
       public static void Main()
       {
           Console.WriteLine(StringUtilities.SayGoodMorning("Dakota"));
       }
    }
    // The example displays the following output:
    //        A top of the morning to you, Dakota!
    
    
    
  • Está intentando llamar a un método en una DLL COM como si fuera Windows DLL. Para tener acceso a COM DLL, seleccione la opción Agregar referencia en Visual Studio para agregar una referencia al proyecto, y después de seleccionar la biblioteca de tipos desde la ficha COM .

Para obtener una lista con los valores de propiedad iniciales de una instancia de EntryPointNotFoundException, vea los constructores EntryPointNotFoundException.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft