You are currently offline, waiting for your internet to reconnect

You receive an LNK4197 error in the 64-bit version of the Visual C++ Compiler

Support for Windows Server 2003 ended on July 14, 2015

Microsoft ended support for Windows Server 2003 on July 14, 2015. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

SUMMARY
When you build a DLL by using the 64-bit version of the Microsoft Visual C++ Compiler and Linker, you may receive Linker error number LNK4197 if a function has been declared for export more than one time.
SYMPTOMS
The Linker output may be similar to the following:
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 
CAUSE
The Linker error number LNK4197 is generated when a function has been declared for export more than one time. A function is declared for export in one of the following ways:
  • The function is declared by using the __declspec(dllexport) keyword in your C source file:
    __declspec(dllexport) int DllSample() {   return 42;}
  • The function is declared by using a module-definition (.DEF) file:
    EXPORTS   DllSample
This Linker error may occur most frequently when both the __declspec(dllexport) keyword and a .DEF file are used to define the same function name in a .DLL project.
RESOLUTION
To resolve this behavior, define exported functions only one time, either by using the __declspec(dllexport) keyword or by using a .DEF file. Do not use both of these methods.
STATUS
This behavior is by design.
MORE INFORMATION
Declaring a function for export more than one time may not produce the Linker error that is described in the "Symptoms" section of this article in 32-bit versions of the Microsoft Windows C++ Compiler and Linker. However, Microsoft recommends that you define function exports only one time in both 32-bit and 64-bit versions of the Windows C++ Compiler and Linker.
Properties

Article ID: 835326 - Last Review: 03/01/2004 17:14:57 - Revision: 1.1

Microsoft Windows Server 2003 Driver Development Kit (DDK), Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Datacenter x64 Edition

  • kbddk kbprb KB835326
Feedback