Erreur dans une librairie
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un problème avec une librairie que je veut utiliser "AnaGate CAN API Library für Windows (32/64 bit)" https://www.anagate.de/support/download.htm la documentation est disponible ici :http://www.anagate.de/download/Manual-AnaGateAPI-en.pdf
J'ai ajouté le #include <AnaGateDllCAN.h> au début et bien placer mon fichier AnaGateDllCAN.h dans l'include mais quand je compile sans même me servir d'une fonction de cette librairie j'ai plusieurs erreurs qui viennent de ma librairie par exemple à cette ligne de ma librairie :
Il me met une erreur :
c:\program files (x86)\codeblocks\mingw\include\anagatedllcan.h|75|error: expected ')' before '*' token|
Si quelqu'un sait d'où vient cette erreur sa m'aiderait beaucoup merci d'avance.
J'ai un problème avec une librairie que je veut utiliser "AnaGate CAN API Library für Windows (32/64 bit)" https://www.anagate.de/support/download.htm la documentation est disponible ici :http://www.anagate.de/download/Manual-AnaGateAPI-en.pdf
J'ai ajouté le #include <AnaGateDllCAN.h> au début et bien placer mon fichier AnaGateDllCAN.h dans l'include mais quand je compile sans même me servir d'une fonction de cette librairie j'ai plusieurs erreurs qui viennent de ma librairie par exemple à cette ligne de ma librairie :
typedef void (WINAPI * CAN_PF_CALLBACK) ( AnaUInt32 nID, const char *pcBuf, AnaInt32 nLen, AnaInt32 nFlags, AnaInt32 hHandle );
Il me met une erreur :
c:\program files (x86)\codeblocks\mingw\include\anagatedllcan.h|75|error: expected ')' before '*' token|
Si quelqu'un sait d'où vient cette erreur sa m'aiderait beaucoup merci d'avance.
A voir également:
- Erreur dans une librairie
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
6 réponses
A mon avis le préprocesseur n'aime pas (WINAPI * CAN_PF_CALLBACK).
Il veut une parenthese fermante avant l'etoile car il ne la prend pas pour un pointeur.
Peut etre supprimer l'espace apres l'etoile ?
Il veut une parenthese fermante avant l'etoile car il ne la prend pas pour un pointeur.
Peut etre supprimer l'espace apres l'etoile ?
Je n'arrive pas a modifier ma librairie donc je peut pas supprimer l'espace après l'étoile...
Bah enfaite je sais pas si j'ai mis au bon endroit mes fichier de ma librairies car j'ai .dll, 1 .lib et 3 .h mais je sais plus ce que je dois faire avec...
Bah enfaite je sais pas si j'ai mis au bon endroit mes fichier de ma librairies car j'ai .dll, 1 .lib et 3 .h mais je sais plus ce que je dois faire avec...
essaie d'inclure ta librairie en décrivant le vrai chemin style de ce qui suit :
#include "c:\......"
#include "c:\......"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai toujours la même erreur, par contre si je tire le WINAPI j'ai plus l'erreur mais je n'arrive pas a utiliser mes fonction après... j'ai sa comme message d'erreur en essayant cette fonction par exemple
||=== Build: Debug in test4 (compiler: GNU GCC Compiler) ===|
D:\test4\main.c||In function 'main':|
D:\test4\main.c|9|warning: passing argument 1 of 'CANOpenDevice' from incompatible pointer type [enabled by default]|
c:\program files (x86)\codeblocks\mingw\include\anagatedllcan.h|97|note: expected 'AnaInt32 *' but argument is of type 'int *'|
D:\test4\main.c|9|warning: unused variable 'nRC' [-Wunused-variable]|
obj\Debug\main.o||In function `main':|
D:\test4\main.c|9|undefined reference to `_imp__CANOpenDevice'|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|
int hHandle = NULL;
// opens AnaGate CAN duo device on port A, timeout after 1000 millseconds
int nRC = CANOpenDevice(&hHandle,0,1,0,"192.168.2.1",1000);
||=== Build: Debug in test4 (compiler: GNU GCC Compiler) ===|
D:\test4\main.c||In function 'main':|
D:\test4\main.c|9|warning: passing argument 1 of 'CANOpenDevice' from incompatible pointer type [enabled by default]|
c:\program files (x86)\codeblocks\mingw\include\anagatedllcan.h|97|note: expected 'AnaInt32 *' but argument is of type 'int *'|
D:\test4\main.c|9|warning: unused variable 'nRC' [-Wunused-variable]|
obj\Debug\main.o||In function `main':|
D:\test4\main.c|9|undefined reference to `_imp__CANOpenDevice'|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|
Salut, " reference to `_imp__CANOpenDevice'| " ça c'est une erreur pendant l'edition des "liens",
dans project>properties>Build targets>Build option>linker settings
rajouter AnaGateCanDll.lib dans link libraries
Cependant il a été compilé par Visual C++, c'est pas dit que ça fonctionnera avec mingw-gcc
dans project>properties>Build targets>Build option>linker settings
rajouter AnaGateCanDll.lib dans link libraries
Cependant il a été compilé par Visual C++, c'est pas dit que ça fonctionnera avec mingw-gcc
https://docs.microsoft.com/en-us/windows/win32/winprog/windows-data-types?redirectedfrom=MSDN#WINAPI
WinDef.h sera inclus si tu inclus windows.h dans ton code avant d'inclure ton fameux header
par exemple dans ton source, tu fais :
si cela ne suffit pas, vois si tu n'as pas besoin de lier dans la partie Linker settings des ressources telles que : gdi32, user32, kernel32 qui sont au minimum présentes pour un projet Windows
vois aussi en supprimant le 1er define sur WIN32_LEAN_AND_MEAN (https://support.microsoft.com/en-us/help/166474)
sinon, les réserves de JwTdd liées au fait que la bibliothèque semble conçue pour Visual C++ sont justifiées.
Dal
WinDef.h sera inclus si tu inclus windows.h dans ton code avant d'inclure ton fameux header
par exemple dans ton source, tu fais :
#define WIN32_LEAN_AND_MEAN #include <windows.h> #include <AnaGateDllCAN.h>
si cela ne suffit pas, vois si tu n'as pas besoin de lier dans la partie Linker settings des ressources telles que : gdi32, user32, kernel32 qui sont au minimum présentes pour un projet Windows
vois aussi en supprimant le 1er define sur WIN32_LEAN_AND_MEAN (https://support.microsoft.com/en-us/help/166474)
sinon, les réserves de JwTdd liées au fait que la bibliothèque semble conçue pour Visual C++ sont justifiées.
Dal