Module-definition (.def) files provide the linker with information about exports, attributes, and other information about the program to be linked. A .def file is most useful when building a DLL. Because there are linker options that can be used instead of module-definition statements, .def files are generally not necessary. You can also use __declspec(dllexport) as a way to specify exported functions.
You can invoke a .def file during the linker phase with the /DEF (Specify Module-Definition File) linker option.
If you are building an .exe file that has no exports, using a .def file will make your output file larger and slower loading.
See the following sections for more information:
Reference
Linker OptionsFrequently Asked Questions on Building
Other Resources
C/C++ Building ReferenceHave a look here: http://msdn.microsoft.com/en-us/library/3y1sfaz2(VS.80).aspx
I was trying to make a C++ wrapper that would be called by Visual Basic. I wanted the C++ functions to be managed code as well.
When I put __declspec(dllexport) in the function definition, I get this message:
Error 1 error C3395: 'WCoinCreateProblem' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention c:\Documents and Settings\Larry A. Taylor\My Documents\ ... .cpp 124
So is dllexport incompatible with clrcall or what? Am I missing something here?