This has always bugged me. I’ve always been able to get dll delcarations working in all of my programs just by mimicking the approach used in others, but I’ve never had a completely clear idea of why they need to be setup the way they are.
In particular, what’s the difference between this…
DLLEXPORT void somefunction() {}
and this…
void __declspec(dllexport) somefunction() {}
?