La partie extern "C"
dit un compilateur C++ que l'élément étant déclaré devrait utilisez C linkage, ce qui signifie que le nom ne sera pas altéré (ou sera modifié de la même manière qu'un compilateur C). Cela permet à l'élément d'être lié au code C et à la plupart des autres langages, car la liaison C est généralement la norme utilisée sur une plate-forme.
Les éléments __declspec(dllexport)
et __declspec(dllimport)
sont des attributs non standard qui indiquent au compilateur que l'élément doit être exporté (ou importé) à partir d'une DLL. L'attribut __declspec()
est pris en charge sur les compilateurs MS et probablement d'autres compilateurs qui ciblent Windows. Je ne suis pas sûr si GCC le fait ou non. Les autres attributs de classe de stockage pouvant être spécifiés avec __declspec()
(au moins dans MSVC) incluent uuid()
, naked
, deprecated
et d'autres qui fournissent au compilateur des informations sur la manière dont un objet ou une fonction doit être compilé.