J'utilise Code::Blocks, je ne sais donc pas si ça marche sur Visual C++, mais au début de ton code, tu dois définir la macro suivante pour le .cpp :
#define DllExport __declspec(dllexport)
Et pour ton .h :
#define DllImport __declspec(dllimport)
ceci fait, tu rédige comme cela tes classes :
class DllExport Exemple
{
public :
Exemple ();
}
Exemple::Exemple ()
{
// Code tout à fait normal ici.
}
// Une autre fonction non-membre :
void DllExport fnInutile ()
{
cout <<"Je ne sers à rien !";
}
Dans ton fichier .h, tu remplace les attributs DllExport par DllImport.
Tu noteras que seule la classe est déclarée comme dll : automatiquement, ses attributs et méthodes le seront aussi.
C'est assez chiant sur Windows. CMake permet de le faire automatiquement avec la propriété WINDOWS_EXPORT_ALL_SYMBOLS. Si tu souhaites le faire à la main, tu dois faire une macro différente entre le moment où tu compiles ta DLL et au moment où tu l'utilises plus tard.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
git is great because Linus did it, mercurial is better because he didn't.
git is great because Linus did it, mercurial is better because he didn't.