Ho avuto questo problema ieri, perdendoci anche un bel po di tempo: non riuscivo a creare con C++ sotto eclipse una dll consumabile tramite VBA di excel!

Praticamente, ho ridotto il problema hai minimi termini: un file. cpp ed un file .h, il file cpp non faceva altro che definire un metodo del tipo

double _stdcall TestPrintValue(double v)
{
 double ret = v;
 ret = ret+10;
 return ret;
}

Che non fa nient'altro che prendere un double e restituirlo incrementato di 10.
Il file .h aveva la definizione dell'export:

#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

EXPORT double TestPrintValue (double);

Compilo e... nulla, non va, ovviamente perchè mi sono dimenticato il file def! Aggiungo quindi il file .def, così formato

EXPORTS
TestPrintValue

E dopo essermi scornato un pò le opzioni di eclipse, lo aggiungo al linker g++ di eclipse con lo switch -def
A questo punto, la situazione è uguale a quella di VC++... con la sola differenza che non compila piu!! Mi dice che non trova il simbolo.... sob...
Con l'aiuto di Raf, che mi ricorda che probabilmente esporta anche le decorazioni (infatti la dll appariva con un metodo _Z14TestPrintValue@8), modifico il file .h in questo modo:

extern "C" EXPORT double TestPrintValue (double);

Ricompilo et voila, tutto funziona :)

Perchè l'ho scritto qui? Perchè in giro ho trovato 432423442 esempi su come scrivere dll c++ consumabili da Excel in VC++ ma niente di niente che parlasse di questi problemi in Eclipse. In VC++ non serve l'excern ed il file .def viene aggiunto automaticamente dal compilatore! Magari se qualcuno ne ha bisogno, capita qui :)