Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1515 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  compilation visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

compilation visual C++

n°1304412
elo29
Posté le 13-02-2006 à 15:14:53  profilanswer
 

Bonjour,
 
Je code actuellement un programme permettant d'extraire les images d'une vidéo et de les convertir en bitmap.
Voici quelques erreurs que je ne comprends pas à la compilation :  
'CreateFromPackedDIBPointer' : undeclared identifiers
'CreateFromPackedDIBPointer' : redefinition; different type modifiers
fatal error : unexpected end of file found
 
La fin de mon code est la suivante et je ne sais pas ce qui manque :  
if (fp!=NULL)
{
fwrite...
}
else
{
printf...;
return FALSE;
}
 
Quelqu'un pourrait m'aider svp?? :jap:

mood
Publicité
Posté le 13-02-2006 à 15:14:53  profilanswer
 

n°1304572
francky06l
Posté le 13-02-2006 à 17:15:09  profilanswer
 

Pour les functions DIB, c'est surement un probleme de #include etc... Pour le unexpected end of file, c'est surement un mismatch entre les  { et les }..mais cela ne vient pas forcement de la fin du fichier...
Il faut verifier tout le fichier, surtout les { des blocks if/else ou do/while, ne pas oublier le } final ..

n°1304593
elo29
Posté le 13-02-2006 à 17:27:44  profilanswer
 

Merci beaucoup pour ta réponse. T'aurais pas une idée du #include qu'il me manque par hasard????

n°1304672
breizhbugs
Posté le 13-02-2006 à 18:59:13  profilanswer
 
n°1304888
elo29
Posté le 14-02-2006 à 09:11:43  profilanswer
 

Salut,
 
Je suis partie de suis là ma

n°1304889
elo29
Posté le 14-02-2006 à 09:12:18  profilanswer
 

mais finalement j'ai changé car j'avais trop d'erreurs avec celui là. Cependant ils sont quasiment identiques!!!!

n°1304902
elo29
Posté le 14-02-2006 à 09:35:15  profilanswer
 

Voici l'adresse du code que j'ai utilisé : http://www.experts-exchange.com/Pr [...] 10679.html

n°1304942
slash33
Posté le 14-02-2006 à 10:18:03  profilanswer
 

Ils sont loin d'être indentiques du point de vue de la programmation : le code source de ton dernier lien ne fait pas appel aux MFC mais uniquement au C et à l'API Windows standard. Ton code précédent faisait lui appel aux MFC (assez maladroitement par certains aspects d'ailleurs). ;)
 
Il me semble que le second code source est mal indexé : il ne devrait pas être classé dans C++ car il n'y a pas un gramme d'objet dedans.


Message édité par slash33 le 14-02-2006 à 10:23:37
n°1304943
elo29
Posté le 14-02-2006 à 10:19:04  profilanswer
 

ah....

n°1304945
elo29
Posté le 14-02-2006 à 10:19:57  profilanswer
 

Il faudrait que je parte de l'autre alors?

mood
Publicité
Posté le 14-02-2006 à 10:19:57  profilanswer
 

n°1304949
slash33
Posté le 14-02-2006 à 10:30:06  profilanswer
 

Non rien ne t'y oblige. Les fonctions portent les même noms et réalisent la même opération. La différence réside dans les types de paramètres des fonctions, l'un étant un type C standard char* et l'autre un objet MFC CString.
 
Remarque: dans les deux cas le type du paramètre szFileName n'est pas approprié : il vaut mieux un const char* ou un LPCTSTR en MFC (macro MFC pour const char*).

n°1304950
chrisbk
-
Posté le 14-02-2006 à 10:31:14  profilanswer
 

slash33 a écrit :

(macro MFC pour const char*).


 
pas exactement. C'est une macro permettant de switcher facilement entre une appli en MBCS et une appli en Unicode.

n°1304952
elo29
Posté le 14-02-2006 à 10:32:22  profilanswer
 

Que signifie macro?

n°1304953
chrisbk
-
Posté le 14-02-2006 à 10:33:20  profilanswer
 

qu'il va falloir songer serieusement à apprendre les bases du  C/C++

n°1304954
elo29
Posté le 14-02-2006 à 10:33:49  profilanswer
 

Là je compile avec le code MFC et j'ai les memes erreurs a la compilation    CreateFromPackedDIBPointer : undeclared identifier

n°1304955
elo29
Posté le 14-02-2006 à 10:34:42  profilanswer
 

Pourtant j'ai des bouquins et j'ai eu des cours et j'en ai jamais entendu parler!!

n°1304956
chrisbk
-
Posté le 14-02-2006 à 10:35:27  profilanswer
 

ptain mais sors toi les doigts du cul [:pingouino]
 
http://web6.codeproject.com/audio/ [...] ct=1082060
 
elle est la, en gros, ta fonction
 

Code :
  1. BOOL CreateFromPackedDIBPointer(LPBYTE pDIB, int iFrame)
  2. {
  3.     ASSERT(pDIB!=NULL);
  4.     //Creates a full-color (no palette) DIB from a pointer to a
  5.     //full-color memory DIB
  6.     //get the BitmapInfoHeader
  7.     BITMAPINFOHEADER bih;
  8.     RtlMoveMemory(&bih.biSize, pDIB, sizeof(BITMAPINFOHEADER));
  9.     //now get the bitmap bits
  10.     if (bih.biSizeImage < 1)
  11.     {
  12.         return FALSE;
  13.     }
  14.     BYTE* Bits=new BYTE[bih.biSizeImage];
  15.     RtlMoveMemory(Bits, pDIB + sizeof(BITMAPINFOHEADER), bih.biSizeImage);
  16.     //and BitmapInfo variable-length UDT
  17.     BYTE memBitmapInfo[40];
  18.     RtlMoveMemory(memBitmapInfo, &bih, sizeof(bih));
  19.     BITMAPFILEHEADER bfh;
  20.     bfh.bfType=19778;    //BM header
  21.     bfh.bfSize=55 + bih.biSizeImage;
  22.     bfh.bfReserved1=0;
  23.     bfh.bfReserved2=0;
  24.     bfh.bfOffBits=sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER); //54
  25.    
  26.     CString FileName;
  27.     FileName.Format("Frame-%05d.bmp", iFrame);
  28.    
  29.     FILE* fp=fopen(FileName, "wb" );
  30.     if (fp!=NULL)
  31.     {
  32.         fwrite(&bfh, sizeof(bfh), 1, fp);
  33.         fwrite(&memBitmapInfo, sizeof(memBitmapInfo), 1, fp);
  34.         fwrite(Bits, bih.biSizeImage, 1, fp);
  35.         fclose(fp);
  36.     }
  37.     else
  38.     {
  39.         TRACE0(_T("Error writing the bitmap file" ));
  40.         return FALSE;
  41.     }
  42.     delete [] Bits;
  43.     return TRUE;
  44. }


n°1304957
chrisbk
-
Posté le 14-02-2006 à 10:35:41  profilanswer
 

elo29 a écrit :

Pourtant j'ai des bouquins et j'ai eu des cours et j'en ai jamais entendu parler!!


 
ué, genre t'as jamais entendu parler de #define

n°1304958
elo29
Posté le 14-02-2006 à 10:36:38  profilanswer
 

Si, mais si tu pouvais parler correctement ça m'arrangerait!!!!!

n°1304959
chrisbk
-
Posté le 14-02-2006 à 10:37:43  profilanswer
 

elo29 a écrit :

Si, mais si tu pouvais parler correctement ça m'arrangerait!!!!!


 
nan mais tu rigoles jean louis ? tu tapes CreateFromPackedDIBPointer dans google et tu trouves directement la réponse. Bouge toi quoi, ou dit autrement "aide toi le ciel t'aideras", c'est pas l'assistance publique ici


Message édité par chrisbk le 14-02-2006 à 10:38:10
n°1304960
slash33
Posté le 14-02-2006 à 10:38:45  profilanswer
 

Tu n'a jamais vu de #define ??
 
// Définit une chaîne constante
#define THIS_IS_MY_STRING_VAR   "this is a string value"
// Définit une macro qui rend la valeur maximale entre deux valeurs
#define MY_MINMAX(a,b) ((a) > (b) ? (a) : (b))
 
C'est une horreur. A proscrire en C++ sauf usage spécifique et justifié.


Message édité par slash33 le 14-02-2006 à 10:40:02
n°1304961
elo29
Posté le 14-02-2006 à 10:39:35  profilanswer
 

eh bien j'ai tapé exactement ça mais ça ne marche pas!!!!!!!!

n°1304963
chrisbk
-
Posté le 14-02-2006 à 10:40:50  profilanswer
 

Et tu veux vraiment pas apprendre les bases du C/C++ avant ?  
 
(a tous les coups il utilise sa fonction avant de l'avoir déclaré / définie)

n°1304964
slash33
Posté le 14-02-2006 à 10:42:19  profilanswer
 

Va savoir. Il ne n'a pas fourni le détail des erreurs de compilation et il a oublié que les exemples publiés sur les pages HTML ne sont pas utilisables en l'état : il faut inclure les en-têtes qui vont bien.

Message cité 1 fois
Message édité par slash33 le 14-02-2006 à 10:43:42
n°1304965
slash33
Posté le 14-02-2006 à 10:42:37  profilanswer
 


Au fait pourquoi avoir changé de topic ?
http://forum.hardware.fr/hardwaref [...] 4772-1.htm


Message édité par slash33 le 14-02-2006 à 10:44:40
n°1304968
chrisbk
-
Posté le 14-02-2006 à 10:43:37  profilanswer
 

slash33 a écrit :

Va savoir. Il ne n'a pas fourni le détail des erreurs de compilation et il a oublié que les exemples publiés sur les pages HTML ne sont pas utilisables en l'état : il faut rajouter l'inclusion des en-tête qui vont bien.


 
 
bah si, un peu quand meme, on ne peut pas lui retirer ca
 

Code :
  1. CreateFromPackedDIBPointer : undeclared identifier


 
maintenant c'est sur qu'on sait pas trop ce qu'il a fait, s'il a bien penser a mettre ca dans son .cpp ou s'il a copier coller le code dans paint...

n°1304969
elo29
Posté le 14-02-2006 à 10:44:10  profilanswer
 

Bien sur que si j'ai déjà vu un #define mais je ne comprends pas macro, c'est tout!

n°1304972
elo29
Posté le 14-02-2006 à 10:45:29  profilanswer
 

Bon et bien je laisse tomber! je suis venu chercher de l'aide et surement pas qu'on me parle comme cela  (chrisbk)!

n°1304975
elo29
Posté le 14-02-2006 à 10:46:03  profilanswer
 

et c'est 'elle' pour ta gouverne!

n°1304976
chrisbk
-
Posté le 14-02-2006 à 10:46:32  profilanswer
 

hé bah laisse tomber, c'est pas moi que ca derange. Néanmoins, a l'avenir et si jamais tu sens a nouveau l'envie de revenir jouer les pleureuses, pense a etre un peu plus précis dans tes questions (genre poster le code foireux). En attendant, je ne peux que te conseiller la lecture d'un solide bouquin de C++

n°1304977
chrisbk
-
Posté le 14-02-2006 à 10:46:57  profilanswer
 

elo29 a écrit :

et c'est 'elle' pour ta gouverne!


 
chouette.

n°1304978
slash33
Posté le 14-02-2006 à 10:47:58  profilanswer
 

Néanmoins il n'a pas tort. Si tu ne sais pas ce qu'est une macro tu manques peut-être des connaissances nécessaires à la mise en oeuvre de ta solution.
 
Là chrisbk t'explique qu'il te manque peut-être la déclaration de la fonction CreateFromPackedDIBPointer et il n'a pas du tout tort.

n°1304981
chrisbk
-
Posté le 14-02-2006 à 10:51:42  profilanswer
 

slash33 a écrit :


Là chrisbk t'explique qu'il te manque peut-être la déclaration de la fonction CreateFromPackedDIBPointer et il n'a pas du tout tort.


 
Pour l'explication: un compilo C/C++ doit connaitre ce que tu utilises avant que tu ne l'utilise
 
soi tu mets le code de CreateDIBPacketBidule avant ta fonction utilisant ledit code, soit tu declares ta fonction avant (cf cours)
 

n°1304983
slash33
Posté le 14-02-2006 à 10:52:42  profilanswer
 

Ton projet doit comporter:
- la déclaration de la fonction CreateFromPackedDIBPointer dans un fichier d'en-tête .H
- l'implémentation de cette fonction dans un fichier .C ou .CPP. Ce fichier doit inclure le fichier d'en-tête dans lequel la fonction est déclarée.


Message édité par slash33 le 14-02-2006 à 10:53:46
n°1304996
elo29
Posté le 14-02-2006 à 11:06:06  profilanswer
 

ok,merci quand même pour les réponse!!!    

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  compilation visual C++

 

Sujets relatifs
problème à la compilation MFC[WxWidgets] Compilation des librairies avec Visual Studio
erreurs à la compilationPb de compilation (traitement d'image)
Erreur de compilationProblème compilation dev-c++
problème de liens à la compilation wxWidgets[RESOLU] Code couleur sous visual basic
[visual basic] dxf 
Plus de sujets relatifs à : compilation visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR