begin process at 2012 05 29 03:44:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

getoenfilename -> ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

getoenfilename -> ???

jeudi 12 octobre 2006 à 23:02:44 | getoenfilename -> ???

stefbuet

salut,
sur une source (http://www.cppfrance.com/code.aspx?ID=28478)
j'ai extrait une fonction de la librairy créé et ais essayé de la faire fonctioner, mais cela ne marche pas.
voyez vous une fautes ( dans mes variables parceque je ne sais pas tro quoi déclarer...) :



#include "file.h"

// mes initialisations de variables

char *extension [500];
char * descriptiontype [500];
HWND windowhandle;
bool VIEWERROR=0;

// la fonction :

int FILEOpenStandardDialogBoxOpenFile(char *extension, char* descriptiontype, HWND windowhandle, BOOL VIEWERROR)
{
 char *fichierouvrir, *buffer;
 int handle, i;
 OPENFILENAME ofn;       //Structure pour ouvrir la boite de dialogue "Ouvrir un fichier..."

 fichierouvrir = (char*) calloc(FILESIZEBUFFER, sizeof(char));
 buffer = (char*) calloc(FILESIZEBUFFER, sizeof(char));
 // Initialisation de la structure OPENFILENAME
 ZeroMemory(&ofn, sizeof(OPENFILENAME));
 ofn.lStructSize = sizeof(OPENFILENAME);
 ofn.hwndOwner = windowhandle;
 ofn.lpstrFile = fichierouvrir;
 ofn.nMaxFile = FILESIZEBUFFER;
 //on doit creer une chaine du type: "descriptiontype\0extension"
 buffer = strcat(buffer, descriptiontype);
 handle = strlen(buffer) + 1;
 for (i = 0; i < 5 && *(extension + i) != '\0'; i++)
  buffer[handle + i] = *(extension + i);
 ofn.lpstrFilter = buffer;
 ofn.nFilterIndex = 1;
 ofn.lpstrFileTitle = NULL;
 ofn.lpstrTitle = strcat(FILETITREOPEN, extension);
 ofn.nMaxFileTitle = 0;
 ofn.lpstrInitialDir = _getcwd(NULL, FILESIZEBUFFER);
 ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
 //Création de la fenètre d'ouverture d'un fichier
 if (GetOpenFileName(&ofn) == TRUE)
 {
  if (handle = FILEOpen(fichierouvrir, VIEWERROR) != -1)
  {
   LocalFree(fichierouvrir);
   return handle;
  }
 }
 LocalFree(fichierouvrir);
 return -1;
}

 

jeudi 12 octobre 2006 à 23:03:18 | Re : getoenfilename -> ???

stefbuet

merci d'avance !

@+
vendredi 13 octobre 2006 à 02:19:29 | Re : getoenfilename -> ???

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
char szfile[300];

BOOL __stdcall dlgFileOpen(HWND hOwner)
{
  OPENFILENAME ofn;
  char szroot[4];
  ofn.lStructSize = sizeof(OPENFILENAME);
  ofn.hInstance = 0;
  ofn.hwndOwner = hOwner;
  ofn.lpstrFilter = "*.*\0*.*\0\0";
  ofn.lpstrFile = szfile;
  ofn.lpstrCustomFilter = ofn.lpstrFileTitle = 0;
  ofn.nFileExtension = ofn.nFileOffset = 0;
  ofn.lCustData = ofn.dwReserved = 0;
  ofn.lpTemplateName = ofn.lpstrInitialDir = ofn.lpstrDefExt = 0;
  ofn.lpfnHook = 0;
  ofn.pvReserved = 0;
  ofn.nFileExtension = ofn.nFileExtension = 0;
  ofn.nMaxCustFilter = ofn.nMaxFileTitle = 0;
  ofn.FlagsEx = OFN_EX_NOPLACESBAR;
  ofn.nFilterIndex = 1;
  ofn.nMaxFile = MAX_PATH;
  ofn.lpstrTitle = szappname;
  ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_DONTADDTORECENT;
  szfile[0] = 0;
  return GetOpenFileName(&ofn);
}

Pas de ZeroMemory() qui ferait la moitié de saboucle inutilement.
Ouvre le fichier hors de ce sélecteur, il ne faut pas tout mélanger si on veut avoir des fonctions réutilisables aisément.

ciao...
BruNews, MVP VC++
vendredi 13 octobre 2006 à 07:45:33 | Re : getoenfilename -> ???

stefbuet

super merci !
quelquesquestions :
la fonction renvoie le nom du fichier ouvert par l'user et -1 pour une erreur ?
je doit juste initialiser une variable ?
HWND hOwner = szfile ?
le prototipe sera BOOL __stdcall dlgFileOpen(HWND hOwner); ??

merci d'avance !
@+

vendredi 13 octobre 2006 à 07:46:34 | Re : getoenfilename -> ???

stefbuet

a oui, et ou est ce que l'on met les extension que l'utilisateur pourra ouvrir ?

vendredi 13 octobre 2006 à 08:40:36 | Re : getoenfilename -> ???

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Ici pour détails:
[ Lien ]


ciao...
BruNews, MVP VC++


Cette discussion est classée dans : buffer, handle, char, ofn, fichierouvrir


Répondre à ce message

Sujets en rapport avec ce message

Question sur les pointeurs [ par Darkneon ] Voici un programme tiree de "Simple C++"#include #include class Court{private: //attributes char * taille chaine de char [ par langedechu ] Salut , voila mon prob (je sais plus comment faire) :j'ai une variable : const char *buffer; et j aimerais savoir le nombre de caractere stocker dans Pb vector de vector de char ! [ par nicolas66 ] Ben g un pti pb avec ce prog en Cpp, à la compile ca passe mé à l'execution ca plante !! si vous savé pk merci d'avance !(c censé initialisé un buffer mon prog plante [ par lcampeur ] Voilà, j'ai un programme qui consiste a envoyer des fichiers quelconques sur des postes référencés précedemment. Je dois pouvoir envoyé plusieurs fich mon prog plante :-( [ par lcampeur ] Voilà, j'ai un programme qui consiste a envoyer des fichiers quelconques sur des postes référencés précedemment. Je dois pouvoir envoyé plusieurs fich Problème d'effacement de tableau en C++ (sans MFC) [ par Shad0w ] Voilà, mon code copie le contenu d'un fichier dans une edit :------------- char fil[LEN]; OPENFILENAME ofn; ZeroMemory(&ofn, sizeof(OPENFI SVP besoin d'aide [ par seito ] [size=5] seito [/size]j'ai déveloper une apploication pour transferer des fichiersla reception est parfaite pourtant à l'envoie ça me cause des tas de recv() et du brol [ par epoc ] hum... encore moi!g un petit prob avec la fonction recv() ou send(), je c pas trop.dans mon client j'ai ça :char *buffer = new char[1024];buffer="NEW char* -> string [ par oRTEEZ ] Voila tout est dans le sujet.En fait j'ai un nom de fichier dans un buffer et j'aimerai ajouter des caractere au nom.ex: *buffer = "voila.jpg"apres tr Probleme Comparaison deux chaines de caracteres [ par Coxis ] Salut,Bon c pas compliqué j'ai 2 tableaux de caracteres de tailles differentes, je veux les comparer mais ca marche pas...En fait a la base je voulais


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales