We recommend using Visual Studio 2017

Compiler Error C2492


The latest version of this topic can be found at Compiler Error C2492.

variable' : 'thread' data may not have dll interface

The variable is declared with the thread attribute and with the DLL interface. The address of the thread variable is not known until run time, so it cannot be linked to a DLL import or export.

The following sample generates C2492:

// C2492.cpp  
// compile with: /c  
class C {  
   char   ch;  
__declspec(dllexport) __declspec(thread) C c_1;   // C2492  
__declspec(thread) C c_1;   // OK