Exporting C++ Functions for Use in C-Language Executables (original) (raw)
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);
What do you want to do?
- 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