Problème C++ : Syntax error : missing ';'

Problème C++ : Syntax error : missing ';' - C++ - Programmation

Marsh Posté le 06-02-2011 à 15:39:05    

Bonjour tout le monde,
 
Je me suis lancé pour la 1e fois dans le développement d'un programme en C++, et je suis bloqué depuis qques jours sur cette erreur. Mes recherches n'ont pas porté leurs fruits :
 
J 'ai créé un Projet de type DLL (pour l'utiliser ensuite ds VBA). J'ai 2 fichiers, un LoiNormale.CPP, un LoiNormale.h.
 
Au moment de la compilation, je reçois un message comme quoi il y a 3 erreurs dans mon fichier LoiNormale.h, avec notamment un oubli de ';', ce qui devrait très facilement se trouver comme erreur à priori  :ouch:  
 
Voila le message d'erreur que j'obtiens :
 
 
--------------------Configuration: LoiNormale - Win32 Debug--------------------
Compiling...
LoiNormale.cpp
c:\users\User\desktop\projets c++\loinormale\loinormale.h(14) : error C2144: syntax error : missing ';' before type 'double'
c:\users\User\desktop\projets c++\loinormale\loinormale.h(14) : error C2501: 'EXPORT_API' : missing storage-class or type specifiers
c:\users\User\desktop\projets c++\loinormale\loinormale.h(14) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
 
LoiNormale.obj - 3 error(s), 0 warning(s)

 
Et mes codes sources :
 
Loi normale.cpp

Code :
  1. // LoiNormale.cpp : Defines the entry point for the DLL application.
  2. //
  3. #include "stdafx.h"
  4. #include <sys/timeb.h>
  5. #include <time.h>
  6. #include <stdlib.h>
  7. #include "LoiNormale.h"
  8. long int *seed = new long ;
  9. int flag =0;
  10. BOOL APIENTRY DllMain( HANDLE hModule,
  11.                        DWORD  ul_reason_for_call,
  12.                        LPVOID lpReserved
  13.      )
  14. {
  15.     return TRUE;
  16. }
  17. /***************************************************************************************/
  18. /****************************** Distribution Loi Normale *******************************/
  19. /***************************************************************************************/
  20. EXPORT_API double WINAPI Ndistribution (double x, double m, double sigma)
  21. {
  22. double prob=100000.00;
  23. const double pi = 3.14159265358979;
  24. prob = (1 / (pow((2 * pi ),0.5)* sigma) * exp (-pow((x - m)/(sigma),2) / 2 ));
  25. return prob;
  26. }


Loi Normale.h
 

Code :
  1. #if !defined(LoiNormale_h__INCLUDED_)
  2. #define LoiNormale_h__INCLUDED_
  3. #endif  // !defined(LoiNormale_h__INCLUDED_)
  4. #ifdef LOINORMALE_EXPORTS
  5. #define EXPORT_API __declspec(dllexport)
  6. #else
  7. #define IMPORT_API __declspec(dllimport)
  8. #endif
  9. //IMPORT_API double x;
  10. EXPORT_API double WINAPI Ndistribution (double x, double m, double sigma);
  11. EXPORT_API double WINAPI Racine (double x);
  12. EXPORT_API double WINAPI Ncumulee (double x, double m, double sigma);
  13. EXPORT_API double WINAPI Ninvcumul (double p);
  14. EXPORT_API void WINAPI tri(long int n, double *tab);
  15. //EXPORT_API void WINAPI Cholesky(int n, double *M, double *chol);
  16. EXPORT_API double WINAPI Ncumul (double x, double m, double sigma);
  17. EXPORT_API double WINAPI ParkMiller(/*long int n, double* V*/);
  18. EXPORT_API void WINAPI test(long int n, double* V) ;
  19. EXPORT_API void WINAPI Multip(double *Bibip, double *Coyote, int n, int m, int q, double *R);
  20. double * Cholesky(int n, double *M);
  21. double * MultMat ( double *Bibip, double *Coyote, int n, int m, int q);
  22. double **SuppligneiMat(int i,int n,double *M);
  23. EXPORT_API double WINAPI ZNormal();


 
 
 
Merci à tous pour votre aide


Message édité par gilou le 06-02-2011 à 15:52:15
Reply

Marsh Posté le 06-02-2011 à 15:39:05   

Reply

Marsh Posté le 06-02-2011 à 15:59:17    

C'est pourtant très clair dans les messages du compilo:
#ifdef LOINORMALE_EXPORTS
#define EXPORT_API __declspec(dllexport)
#else
#define IMPORT_API __declspec(dllimport)
#endif
 
EXPORT_API est défini que lorsque LOINORMALE_EXPORTS est défini (manifestement, c'est pas défini chez toi dans les paramètres passés au compilo)
Donc il arrive ici
EXPORT_API double WINAPI Ndistribution (double x, double m, double sigma);
( C'est d'ailleurs la ligne qu'il indique dans son message: c:\users\User\desktop\projets c++\loinormale\loinormale.h(14) )
quand il rencontre EXPORT_API double il connait pas EXPORT_API qui est pour lui un identifiant simple, donc il gueule parce qu'il trouve le mot clé double ensuite, ce qui n'est pas autorisé par la grammaire du C++. D'ou son premier message: j'aurais du avoir un ; avant le double. Ensuite, il dit: j'ai rencontré la déclaration du symbole EXPORT_API, mais j'ai pas de déclaration de type ou de storage (constant...) avant et donc erreur a nouveau...
 
A+,


Message édité par gilou le 06-02-2011 à 16:00:15

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed