[résolu] Aide pour compilation

Aide pour compilation [résolu] - C++ - Programmation

Marsh Posté le 10-03-2009 à 11:25:07    

Bonjour,
J'utilise ce programme (http://nipg.inf.elte.hu/headmouse/headmouse.html) afin de piloter mon ordi au quotidien (bouger la souris grace aux mouvements de ma tete et d'une webcam, je suis devenu tetraplégique à cause d'une maladie).
Il fonctionne trés bien sous XP,mais hélas pas sous vista.
Mon portable rendant l'ame, je dois donc migrer sur Vista:(.
Par chance ce programme est sous GPL ici (http://sourceforge.net/projects/erutarian/)
voici une copie du code source http://www.megaupload.com/?d=W5G7MXJQ (400Ko).
J'ai récupéré les sources par CVS.
Mais la compilation ne marche pas :(
Le code a été posté sans explications...
J'ai compris qu'il a été developpé a l'aide de MFC AppWizard
Je ne suis qu'un trés piètre programmeur, je me débrouille beaucoup mieux en script :lol: je dois avoir du mal avec la POO :?
 
Applis installées:
- Opencv http://sourceforge.net/project/sho [...] p_id=22870
- Directx sdk nov2008(http://www.microsoft.com/downloads [...] laylang=en) et aout2007 (http://www.microsoft.com/downloads [...] laylang=en pour dxtrans.h)
- VisualStudio Express 2008
- Obligation de compiler C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses pour avoir strmbase.lib et streams.h
- Modification de m_bTracking = false; à m_bTracking = true; ligne73 de HeadmouseDoc.cpp
 
J'ai des erreurs de syntaxe que je ne comprends pas lors de la compilation.
Voici le log de la compilation:

Code :
  1. 1>------ Début de la génération : Projet : ProcessLib, Configuration : Release Win32 ------
  2. 1>Compilation en cours...
  3. 1>Initializer.cpp
  4. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(122) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  5. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  6. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(147) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  7. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  8. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(175) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  9. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  10. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(187) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  11. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  12. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(189) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  13. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  14. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(190) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  15. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  16. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(197) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  17. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  18. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(248) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  19. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  20. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(259) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  21. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  22. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(264) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  23. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  24. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(283) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  25. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  26. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(284) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  27. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  28. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(285) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  29. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  30. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(323) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  31. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  32. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(324) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  33. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  34. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(325) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  35. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  36. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(329) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  37. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  38. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(350) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  39. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  40. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(358) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  41. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  42. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(368) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  43. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  44. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(461) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  45. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  46. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(530) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  47. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  48. 1>.\Initializer.cpp(45) : error C2065: 'i' : identificateur non déclaré
  49. 1>.\Initializer.cpp(117) : warning C4244: '=' : conversion de 'double' en 'int', perte possible de données
  50. 1>.\Initializer.cpp(118) : warning C4244: '=' : conversion de 'double' en 'int', perte possible de données
  51. 1>.\Initializer.cpp(121) : warning C4244: 'argument' : conversion de 'double' en 'int', perte possible de données
  52. 1>Tracker.cpp
  53. 1> WINVER not defined. Defaulting to 0x0600 (Windows Vista)
  54. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(122) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  55. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  56. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(147) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  57. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  58. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(175) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  59. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  60. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(187) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  61. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  62. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(189) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  63. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  64. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(190) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  65. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  66. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(197) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  67. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  68. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(248) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  69. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  70. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(259) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  71. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  72. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(264) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  73. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  74. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(283) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  75. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  76. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(284) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  77. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  78. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(285) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  79. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  80. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(323) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  81. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  82. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(324) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  83. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  84. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(325) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  85. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  86. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(329) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  87. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  88. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(350) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  89. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  90. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(358) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _stricmp. See online help for details.
  91. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(215) : voir la déclaration de 'stricmp'
  92. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(368) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
  93. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(207) : voir la déclaration de 'strdup'
  94. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(461) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  95. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(74) : voir la déclaration de 'strcpy'
  96. 1>c:\program files\opencv\cvaux\include\cvvidsurv.hpp(530) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  97. 1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string.h(79) : voir la déclaration de 'strcat'
  98. 1>d:\aymeric\documents\headmouse\headmouse\processlib\Logger.h(30) : warning C4244: '=' : conversion de 'time_t' en 'double', perte possible de données
  99. 1>d:\aymeric\documents\headmouse\headmouse\processlib\Logger.h(63) : warning C4244: '=' : conversion de 'time_t' en 'double', perte possible de données
  100. 1>.\Tracker.cpp(139) : error C2065: 'i' : identificateur non déclaré
  101. 1>.\Tracker.cpp(139) : error C2227: la partie gauche de '->object' doit pointer vers un type class/struct/union/générique
  102. 1>        le type est ''unknown-type''
  103. 1>.\Tracker.cpp(139) : error C2227: la partie gauche de '->GetMaxFeatures' doit pointer vers un type class/struct/union/générique
  104. 1>.\Tracker.cpp(557) : warning C4018: '<' : incompatibilité signed/unsigned
  105. 1>Génération de code en cours...
  106. 1>Le journal de génération a été enregistré à l'emplacement "file://d:\Aymeric\Documents\headmouse\headmouse\ProcessLib\Release\BuildLog.htm"
  107. 1>ProcessLib - 4 erreur(s), 50 avertissement(s)
  108. 2>------ Début de la génération : Projet : headmouse, Configuration : Release Win32 ------
  109. 2>Compilation en cours...
  110. 2>SensDialog.cpp
  111. 2>.\SensDialog.cpp(58) : error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
  112. 2>MainFrm.cpp
  113. 2>C:\Program Files\Microsoft SDKs\Windows\v6.1\\include\qedit.h(498) : fatal error C1083: Impossible d'ouvrir le fichier include : 'dxtrans.h' : No such file or directory
  114. 2>headmouseView.cpp
  115. 2>C:\Program Files\Microsoft SDKs\Windows\v6.1\\include\qedit.h(498) : fatal error C1083: Impossible d'ouvrir le fichier include : 'dxtrans.h' : No such file or directory
  116. 2>headmouseDoc.cpp
  117. 2>C:\Program Files\Microsoft SDKs\Windows\v6.1\\include\qedit.h(498) : fatal error C1083: Impossible d'ouvrir le fichier include : 'dxtrans.h' : No such file or directory
  118. 2>headmouse.cpp
  119. 2>C:\Program Files\Microsoft SDKs\Windows\v6.1\\include\qedit.h(498) : fatal error C1083: Impossible d'ouvrir le fichier include : 'dxtrans.h' : No such file or directory
  120. 2>GraphBase.cpp
  121. 2>.\GraphBase.cpp(7) : fatal error C1083: Impossible d'ouvrir le fichier include : 'streams.h' : No such file or directory
  122. 2>Génération de code en cours...
  123. 2>Le journal de génération a été enregistré à l'emplacement "file://d:\Aymeric\Documents\headmouse\headmouse\headmouse\Release\BuildLog.htm"
  124. 2>headmouse - 6 erreur(s), 0 avertissement(s)
  125. ========== Génération : 0 a réussi, 2 a échoué, 0 mis à jour, 0 a été ignoré ==========


Merci de votre aide :)
 
Kilhian


Message édité par kilhian le 11-03-2009 à 11:55:39
Reply

Marsh Posté le 10-03-2009 à 11:25:07   

Reply

Marsh Posté le 10-03-2009 à 11:33:41    

Citation :

J'ai des erreurs de syntaxe

C'est intéressant, mais sans les voir, c'est difficile de faire un diagnostic. Donc, il faudrait poster le message. S'il y a un numéro de ligne dans le message, ce serait bien aussi de poster la ligne du code source avec une ou deux lignes avant la ligne en question.

Reply

Marsh Posté le 10-03-2009 à 12:25:15    

le log mis à jour dans le premier post

Reply

Marsh Posté le 10-03-2009 à 13:40:40    

Code :
  1. 1>.\Initializer.cpp(45) : error C2065: 'i' : identificateur non déclaré


Ce genre d'erreur est en général assez trivial à corriger ...
Est-ce que tu es allé voir dans le code de Initializer.cpp à la ligne 45 ou un peu avant s'il y avait quelque chose d'anormal ?
De toutes façons comme le dit olivthill, sans code source on ne peut pas faire grand chose non plus...
 


---------------
By bob.
Reply

Marsh Posté le 10-03-2009 à 14:05:05    

J'ai tenté de le déclarer correctement mais rien n'y fait  :(  
J'ai corrigé les liens du premier post.
Voici le code source http://www.megaupload.com/?d=W5G7MXJQ

Reply

Marsh Posté le 10-03-2009 à 15:10:12    

génial l'image ...

Reply

Marsh Posté le 10-03-2009 à 15:44:49    

:??:  
quelle image ?

Reply

Marsh Posté le 10-03-2009 à 16:59:10    

colle ton code ici pas ailleurs. et colle un morceau de code que tu as isolé, pas ton projet.

Reply

Marsh Posté le 10-03-2009 à 17:14:56    

Je pensais que le projet était plus parlant pour que l'un d'entre vous constate le problème en lancant la compilation.
 
voici Initializer.cpp

Code :
  1. #pragma warning(disable : 4786)     // debug information truncated
  2. #pragma warning(disable : 4800)     // performance warning
  3. #include "Initializer.h"
  4. CInitialiser::CInitialiser(int type, bool writeavi,
  5.         const char *toread, const char *towrite) : CImageSource()
  6. {
  7. if(type==CAMERA)
  8. {
  9.  m_capture=cvCaptureFromCAM(-1);
  10. }
  11. else if(type==AVI)
  12. {
  13.  m_capture=cvCaptureFromAVI(toread);
  14. }
  15. if(writeavi)
  16.  InitWriter(towrite);
  17. m_status=writeavi;
  18. }
  19. CInitialiser::~CInitialiser()
  20. {
  21. if(m_status)
  22.  cvReleaseVideoWriter(&m_writer);
  23. cvReleaseCapture(&m_capture);
  24. }
  25. void CInitialiser::AddShowWindow(const char *title)
  26. {
  27. bool tobreak=false;
  28. char ctitle[256];
  29. strcpy(ctitle, title);
  30. for(list<string>::const_iterator i=m_windows.begin(); i!=m_windows.end() && !tobreak; ++i) // i est bien declaré ici
  31. {
  32.  if(0==strcmp((*(i)).c_str(),title))
  33.   tobreak=true;
  34. }
  35. if(tobreak || i==m_windows.end()) //ligne 46 var i not declare
  36. {
  37.  if(cvGetWindowHandle(title))
  38.  {
  39.   m_windows.push_back(ctitle);
  40.  }
  41.  else
  42.  {
  43.   cvNamedWindow(title, CV_WINDOW_AUTOSIZE);
  44.   m_windows.push_back(ctitle);
  45.  }
  46. }
  47. }
  48. void CInitialiser::RemoveShowWindow(const char *title, bool todelete)
  49. {
  50. bool tobreak=false;
  51. char ctitle[256];
  52. strcpy(ctitle, title);
  53. m_windows.remove(ctitle);
  54. if(todelete)
  55.  cvDestroyWindow(title);
  56. }
  57. IplImage * CInitialiser::GetFrame() const
  58. {
  59. IplImage *img;
  60. img=cvQueryFrame(m_capture);
  61. if(m_status)
  62.  cvWriteFrame(m_writer, img);
  63. for(list<string>::const_iterator i=m_windows.begin(); i!=m_windows.end(); ++i)
  64. {
  65.  cvShowImage((*i).c_str(), img);
  66.  cvWaitKey(1);
  67. }
  68. if(img->origin)
  69. {
  70.  cvFlip(img, NULL);
  71.  img->origin=0;
  72. }
  73. return img;
  74. }
  75. void CInitialiser::SetWriteStatus(bool status, const char *filename)
  76. {
  77. if((status && m_status) || (!status && !m_status))
  78.  return;
  79. else if(!status && m_status)
  80. {
  81.  cvReleaseVideoWriter(&m_writer);
  82.  m_status=false;
  83. }
  84. else if(status && !m_status)
  85. {
  86.  InitWriter(filename);
  87.  m_status=true;
  88. }
  89. }
  90. bool CInitialiser::InitWriter(const char *filename)
  91. {
  92. cvQueryFrame(m_capture);
  93. CvSize framesize;
  94. framesize.width=cvGetCaptureProperty(m_capture, CV_CAP_PROP_FRAME_WIDTH);
  95. framesize.height=cvGetCaptureProperty(m_capture, CV_CAP_PROP_FRAME_HEIGHT);
  96. m_writer=cvCreateAVIWriter(filename, cvGetCaptureProperty(m_capture, CV_CAP_PROP_FOURCC),
  97. cvGetCaptureProperty(m_capture, CV_CAP_PROP_FPS), framesize);
  98. return(m_writer!=NULL);
  99. }


Message édité par kilhian le 10-03-2009 à 17:40:13
Reply

Marsh Posté le 10-03-2009 à 18:22:56    

Citation :

for(list<string>::const_iterator i=m_windows.begin(); i!=m_windows.end() && !tobreak; ++i) // i est bien declaré ici  
{
 if(0==strcmp((*(i)).c_str(),title))
  tobreak=true;
}
if(tobreak || i==m_windows.end()) //ligne 46 var i not declare

En fait, i est déclaré à l'intérieur de la boucle for, et est donc théoriquement invisible en dehors de cette boucle, sauf avec certains compilateurs.
Il faudrait essayer les lignes suivantes à la place :

list<string>::const_iterator i=m_windows.begin();
for(; i!=m_windows.end() && !tobreak; ++i)
{
 if(0==strcmp((*(i)).c_str(),title))
  tobreak=true;
}
if(tobreak || i==m_windows.end())


Message édité par olivthill le 10-03-2009 à 18:23:28
Reply

Marsh Posté le 10-03-2009 à 18:22:56   

Reply

Marsh Posté le 10-03-2009 à 21:32:58    

Merci, c'était bien ça, j'ai réussi a tout compiler :)

Reply

Marsh Posté le 25-10-2011 à 19:51:33    

bonjours kilhian , je voudrai utiliser ton prgramme mai j'arrive plus , s'il te lie explique oi quequ'il me faut faire afin quil fonctionne  
erci on avonce

Reply

Sujets relatifs:

Leave a Replay

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