Je souhaite créer une bibliothèque dynamique (.dll) pour l'un des composants écrits en C++, utilisé dans mon travail. Deux fonctions sont déclarées en tant qu'ext dans un fichier .h et sont référencées dans le fichier .cpp correspondant. En les reliant, je reçois une erreur de symbole non résolue.Comment lier une fonction déclarée comme extern dans un fichier .h, pour créer un fichier .dll?
xxxx.obj: erreur LNK2019: symbole externe non résolu "int __cdecl run_xxx (int, char * * const, struct st_xx *)" (run_xxx @@ YAHHQEAPEADPEAUst_xx @@@ Z?) Référencé dans la fonction « int __cdecl start_xx (int, int, int, char * * const) "(? start_xx @@ YAHHHHQEAPEAD @ Z)
L'utilisation de ces fonctions est comme, ils doivent être définis par n'importe quelle application utilisant cette bibliothèque. La définition de ces fonctions ne sera donc que dans l'application utilisant cette bibliothèque. Ainsi, je ne pouvais pas ajouter d'autres bibliothèques ayant la définition de ces API lors de la liaison.
Comment les API externes doivent-elles être gérées lors de la création d'une DLL?
Merci @Cheers et hth. - Alf. Passer le pointeur ou l'interface serait une bonne idée, mais dans mon cas un grand nombre d'applications utilisent ce composant. Modifier dans toutes ces applications semble très impossible. – JOE