travaux dllexport/dllimport, placez-le avant votre nom de classe dans le fichier d'en-tête et vous êtes bon pour aller.
Typiquement, vous voulez utiliser dllexport dans la DLL, et dllimport dans l'exe (mais vous pouvez simplement utiliser dllexport partout et cela fonctionne, en le faisant «juste» le rend un peu plus rapide à charger).
De toute évidence, cela concerne la compilation de liens. Vous pouvez utiliser la directive de l'éditeur de liens/delayload pour la rendre 'dynamique', mais ce n'est probablement pas ce que vous voulez de la ligne d'objet.
Si vous voulez vraiment un chargement de style LoadLibrary, vous allez devoir envelopper vos fonctions C++ avec des wrappers "extern C". Le problème est dû au mangling de noms, vous pouvez taper le nom entièrement modifié et cela fonctionnera. Les solutions de contournement sont généralement de fournir une fonction C qui renvoie un pointeur vers la classe correcte - COM fonctionne de cette façon, car il exporte 4 fonctions C d'une DLL qui sont utilisées pour obtenir les méthodes d'interface à l'intérieur de l'objet dans la DLL. .
Ces noms 'SomeClass' ne devraient-ils pas avoir des astérisques (c'est-à-dire des pointeurs vers' SomeClass')? –