J'écris une application sur VC++ en utilisant SAGEM MORPHO DLL.
La DLL Je me réfère est MORPHO_SDK.dll
La fonction est exposée jeAppeler C++ dll dans VC++
C_MORPHO_User::Enroll (US i_us_Timeout,UC i_uc_FingerNumber, T_MORPHO_TYPE_TEMPLATE i_x_TemplateType,
UL i_ul_CallbackCmd,
T_MORPHO_CALLBACK_FUNCTION i_pf_Callback,
PVOID i_pv_CallbackArgument,
I i_i_CoderChoice,
UL i_ul_DetectModeChoice
)
La façon dont je fais appel est
int res;
C_MORPHO_User u,nw,idf;
extern "C
" __declspec(dllimport) int Enroll (US i_us_Timeout,UC i_uc_FingerNumber,
T_MORPHO_TYPE_TEMPLATE i_x_TemplateType,
UL i_ul_CallbackCmd,
T_MORPHO_CALLBACK_FUNCTION i_pf_Callback,
PVOID i_pv_CallbackArgument,
I i_i_CoderChoice,
UL i_ul_DetectModeChoice
) ;
main()
{
int x=u.Enroll(0x15,1,MORPHO_PK_ISO_FMR ,0,NULL,NULL,MORPHO_MSO_V9_CODER ,MORPHO_ENROLL_DETECT_MODE);
printf("%d\n",x);
}
Lors de la compilation Je reçois ces erreurs
erreur 1.syntax: manquant ';' avant l'identificateur 'u'
2.C_MORPHO_User: spécificateur de classe de stockage ou spécificateur de type manquant.
Est-ce la façon correcte d'appeler la DLL. Veuillez aider à résoudre le problème.
La réponse immédiate à votre première question est * non *, ce n'est * pas * la bonne façon d '«appeler la DLL». Pour commencer, vous avez besoin de la définition de classe de votre fichier .h. – WhozCraig
Un couple de choses: D'abord vous devez inclure le fichier d'en-tête où 'C_MORPHO_User' est défini. Deuxièmement, vous ne devez pas déclarer une fonction autonome 'Enroll' car c'est une fonction membre de' C_MORPHO_User' et elle sera déclarée comme faisant partie de la définition de la classe 'C_MORPHO_User'. –
Lorsque j'inclue les fichiers d'en-tête respectifs Fichiers d'en-tête, il donne des erreurs comme C_MORPHO_TemplateList ': classe de base indéfini, C_MORPHO_FieldList': classe de base indéfinie, erreur de syntaxe: identifiant 'C_MORPHO_TemplateList' etc ... – WallPoster