If you have functions in a DLL written in C++ that you want to access from a C-language module, you should declare these functions with C linkage instead of C++ linkage. Unless otherwise specified, the C++ compiler uses C++ type-safe naming (also known as name decoration) and C++ calling conventions, which can be difficult to call from C.
To specify C linkage, specify extern "C" for your function declarations. For example:
extern "C" __declspec( dllexport ) int MyFunc(long parm1);
Export from a DLL using .def files
Export from a DLL using __declspec(dllexport)
Export and import using AFX_EXT_CLASS
Export C functions for use in C or C++-language executables
Determine which exporting method to use
Import into an application using __declspec(dllimport)
Initialize a DLL
Decorated names
Linkage specifications