Eventuali duplicati:
Windows & C++: extern & __declspec(dllimport)
Why/when is __declspec(dllimport) not needed?cosa fa __declspec (dllexport) fare, quando inserirlo prima di una funzione di importazione
Voglio scrivere un progetto DLL. Questo progetto include diverse DLL. Sono dipendenti. Mi definisco alcune macro come segue:
#ifdef MYDLL_DECL1
#define DLL_DECL __declspec(dllexport)
#else
#define DLL_DECL __declspec(dllimport)
#endif
ho definito MYDLL_DECL1 ... MYDLL_DECLn per ogni modulo. Perché ho pensato se definissi la stessa macro che non avrebbe funzionato. Ma voglio davvero definire solo una macro e ho scritto un banco di prova. Ho due moduli. Nel secondo file sorgente di moudle. Scrivo codice come segue:
#define MYDLL_DECL
#include "moudle1.h"
#include "moudle2.h"
Se io uso lo stesso nome di macro "MYDLL_DECL", per il file testa di modle1 ho definito "MYDLL_DECL", così "DLL_DECL" è uguale a '__declspec (dllexport)'. In realtà nel modulo2 dovrebbe essere uguale a "__declspec (dllimport)", poiché module2 import module1. Ma ho trovato funzionato quando ho appena definito una stessa macro per due moduli. E trovo anche che l'OpenCV usi anche questo strumento nella sua libreria
... Cosa ?? Puoi usare '__declspec (dllimport)' direttamente senza dover definire la tua macro! –
http://stackoverflow.com/questions/4489441/why-when-is-declspec-dllimport-not-needed – Mohammad
__declspec (dllimport) è un identificatore di C/C++. Quindi posso usare – Samuel