Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Resumen

Al generar un archivo DLL con la versión de 64 bits del compilador de Microsoft Visual C++ y el vinculador, vinculador LNK4197 del número de error puede aparecer si se ha declarado una función para exportar más de una vez.

Síntomas

La salida del vinculador puede ser similar al siguiente:

C:\>link /NOLOGO /def:Sample.def /pdb:Sample.pdb /out:Sample.dll  Sample.objSample.obj : warning LNK4197: export 'DllSample' specified multiple times; using first specification   Creating library Sample.lib and object Sample.exp 

Causa

El vinculador LNK4197 del número de error se genera cuando se ha declarado una función para exportar más de una vez. Se declara una función para la exportación de una de las siguientes maneras:

  • La función se declara utilizando la palabra clave __declspec (dllexport) en el archivo de código fuente de C:

    __declspec(dllexport) int DllSample() {   return 42;}
  • La función se declara utilizando una definición de módulo (. Archivo DEF):

    EXPORTS   DllSample

Este error del vinculador puede producirse con más frecuencia cuando tanto la palabra clave __declspec (dllexport) y una. Archivo DEF se utilizan para definir el mismo nombre de función en una. Proyecto DLL.

Resolución

Para resolver este comportamiento, definir funciones exportadas sólo una vez, ya sea mediante la palabra clave __declspec (dllexport) o mediante una. Archivo DEF. No utilice ninguno de estos métodos.

Estado

Este comportamiento es una característica del diseño de la aplicación.

Más información

Declarar una función para exportar más de una vez puede no producir el error del vinculador que se describe en la sección "Síntomas" de este artículo en las versiones de 32 bits del vinculador y compilador de C++ de Microsoft Windows. Sin embargo, Microsoft recomienda que defina la función exportaciones sólo una vez en versiones de 32 bits y 64 bits del vinculador y compilador de C++ de Windows.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×