IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] Problème de transfert de fichier


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut [MFC] Problème de transfert de fichier
    Bonjour a tous
    Mon problème est une peu compliqué :
    Je réalise un transfert de photo.
    Pour cela je lis cette photo dans un buffer (de type char * de 4096).
    J'envoi ensuite cela a l'aide d'une fonction(constructeur) :

    SendQ931Message ( LONG nCallId, BSTR bStrMessage)

    ceci donne le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    char *buffer = new char[4096];
    		FILE *fo=fopen("C:\\Photo.jpg","rb"); // ouverture du fichier
     
    		while(!feof(fo)) {
    			try{
    				int toto=fread(buffer,sizeof(char),4096,fo);  	
                      iTermPtrEv->SendQ931Message(iTermPtrEv->GetActiveCallId(),buffer);
    				}
    			catch ( _com_error& excepti){
    				CString temp="";
    				temp+="ERROR Photo :";
    				temp+=(LPCTSTR) excepti.Description();
    				temp+=excepti.ErrorMessage();
    				MessageBox(NULL,temp,"Photo",MB_OK);
    			}
    De l'autre coter de mon application, je dois recevoir les buffer avec la fonction ci dessous :

    OnQ931MessageReceived (BSTR bStrMessage, LONG nDecodeurIndice)

    Pour ce faire j'utilise le code ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    void CTerminalEvent::OnQ931MessageReceived(BSTR bStrMessage,long nDecodeurIndice)
    {
    	CString RecuCS;
     
    	RecuCS=BSTRtoASC(bStrMessage);
     
    		if(RecuCS.Left(6)=="Volume")
    		{
    			if(RecuCS.Left(7)=="Volume2")
    			{		
    				m_diagVC2->MiseAJourVolume(RecuCS);
    				return ;
    			}
    			else{
    				m_diagVC3->MiseAJourVolume(RecuCS);
    			}
    		}
    		else{
    			char *buffer = new char[RecuCS.GetLength()+1];
    			strncpy(buffer,RecuCS,RecuCS.GetLength()); 
    			FILE *fo=fopen("C:\\Photo.jpg","a+b");
    			fwrite(bStrMessage,sizeof(char),RecuCS.GetLength(),fo);
    			fclose(fo);
    		}
     
    }
    [quote]
     
    Vous vous en douterez, ca marche pas :D  En fait je recois des message mais pas entier.. mon chier de 10K se transforme en 1K a peu pres...
     
    Donc j'ai pas ma photo[/quote]

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    dans la doc de cette fonction, 4096 n'est-ce pas trop grand ? faut-il envoyer des \0 terminaux ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    La doc de la fonction ne parle pas de la taille limite ni de l'envoi ou pas de \0. Je pense qu'elle ne fait vraiment qu'envoyer....

    Voici le texte exacte(pas tres explicite) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HRESULT eConf::ITerminal::SendQ931Message ([in] LONG
    nCallId, [in] BSTR bStrMessage)
    During a H323 call, ask eConf to send a Q931 Message Facility with the given
    text.
    Parameters:
    nCallId [in]ID of the call. EConf can support some call at the same time, the
    first call has for ID 0. (When there is only one call, the ID is 0).
    bStrMessage [in] the value to put into the Q931 Message

Discussions similaires

  1. Problème de transfert de fichier à l'aide d'un web service
    Par Theoden dans le forum Services Web
    Réponses: 0
    Dernier message: 23/02/2009, 21h19
  2. problème de transfert de fichier
    Par Z3phur dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 09/10/2008, 16h10
  3. [Upload] Problème de transfert de fichier
    Par bidibou dans le forum Langage
    Réponses: 4
    Dernier message: 21/07/2008, 14h07
  4. Problème de transfert de fichier avec webutil
    Par aznkd dans le forum Forms
    Réponses: 5
    Dernier message: 06/06/2008, 17h03
  5. [MFC]Problème de chemin de fichier
    Par benahpets dans le forum MFC
    Réponses: 3
    Dernier message: 06/09/2005, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo