Originariamente inviato da Abenzka
Dunque, la dll funziona perfettamente e si compila pure xò in fase di compilazione mi sballa tutti i nomi delle funzioni.
Quello che fa il compilatore, in questo caso, si chiama "name mangling". Il compilatore modifica il nome della funzione (all'interno del file oggetto) in modo tale che nel nome ci siano le informazioni sulla "signature" della funzione (la "firma" della funzione, cioè le informazioni sui parametri).

Per evitare ciò si devono marcare le funzioni come extern "C". Esempio:

codice:
#ifdef  __cplusplus
extern "C" {
#endif

void funz1 (void);
void funz2 (void);

#ifdef  __cplusplus
}
#endif