bonjour, j'aimerais savoir comment faire pour ouvrir une boite de dialogue pour que l'utilisateur puisse choisir l'endroit ou il veut enregistrer un fichier
pouvez vous m'aider?
Version imprimable
bonjour, j'aimerais savoir comment faire pour ouvrir une boite de dialogue pour que l'utilisateur puisse choisir l'endroit ou il veut enregistrer un fichier
pouvez vous m'aider?
bonjour, j'aimerais savoir ce que tu utilises comme bibliothèque graphique, parce qu'en C++ standard on ne peut pas faire de boîte de dialogue.
Précise aussi la plate-forme : Certaines (au hasard: Windows) proposent en natif une fonction pour les boites de dialogue de choix de fichier...
bibliothèque graphique :oops: oèu je peux savoir ça?, je suis sur widows et j'utilise visual c++ 6.0 .... on m'A dit d'essayer avec jfilechooser, mais rien ne se passe
Utilises-tu les classes de VC++ (MFC) oubien développes-tu en Win32 pur ?
oui j'utilise mfc
je viens de me rendre compte que je ne fouillait pas dans la bonne faq.... :oops:
http://c.developpez.com/faq/vc/?page...etOpenFileName
et je crois que ça marche...
oh non!!! ça donne une erreur:
vous savez ce que çaveut dire?Citation:
error LNK2005: "int __cdecl DlgSelFicName(class CWnd *,class CString &,char const *,int)"
J'ai déplacé vers le bon forum.
Donne le message d'erreur complet.
Bn alors voila, j'ai util.h qui contien ma fonction:
et dans mon StdAfx.h j'inclutCode:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 BOOL DlgSelFicName(CWnd *pParent,CString& rstrFileName,LPCTSTR pszExt,BOOL bUnlink=FALSE) { #define MAXPATH 256 char szDrive[_MAX_DRIVE]; char szDir[_MAX_DIR]; char szFname[_MAX_FNAME]; char szExt[_MAX_EXT]; OPENFILENAME ofn; char szFileBuf[MAXPATH]; char szpathDir[128],*pszPath=NULL, szbufDir[128]; CString strRet; pszPath=(char *)_getcwd(NULL,127); szFileBuf[0] = 0; if(!rstrFileName.IsEmpty()) { _splitpath((const char *)rstrFileName, szDrive, szDir, szFname, szExt); strcpy(szpathDir,szDrive); strcat(szpathDir,szDir); strcpy(szFileBuf,szFname); strcat(szFileBuf,szExt); } else { strRet=AfxGetApp()->GetProfileString( "OpenFileName","Path",""); strcpy(szbufDir,strRet); if(strlen(szbufDir)) strcpy(szpathDir,szbufDir); else strcpy(szpathDir,pszPath); } ofn.lStructSize = sizeof(OPENFILENAME); ofn.hwndOwner =(pParent?pParent->GetSafeHwnd():NULL); ofn.lpstrFilter =pszExt; ofn.lpstrCustomFilter = NULL; ofn.nFilterIndex = 0; ofn.lpstrFile = szFileBuf; ofn.nMaxFile = MAXPATH; ofn.lpstrFileTitle = NULL; ofn.lpstrInitialDir = szpathDir; ofn.lpstrTitle = NULL; ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST; ofn.lpstrDefExt = NULL; rstrFileName=""; BOOL bOK=FALSE; if (GetOpenFileName(&ofn)) { CString e; _splitpath(szFileBuf, szDrive, szDir, szFname, szExt); sprintf(szpathDir,"%s%s",szDrive,szDir); AfxGetApp()->WriteProfileString("OpenFileName","Path",szpathDir); sprintf(szFileBuf,"%s%s%s",szDrive,szDir,(strlen(szFname)?szFname:"")); e=pszExt; e=e.Right(5); e=e.Left(4); strcat(szFileBuf,(strlen(szExt)?szExt:e)); rstrFileName=szFileBuf; if(bUnlink) _unlink(szFileBuf); bOK=TRUE; } else rstrFileName=""; if(pszPath) { _chdir(pszPath); free(pszPath); } return bOK; }
dans une dialog, je veuz appeller ma fonction (j'ai inclut "StdAfx.h")Code:#include "util.h"
alors je faismais ça me donne cette erruer:Code:DlgSelFicName(AfxGetMainWnd(),strFileName,"Fichiers Txt (*.txt)\0*.txt\0");
Pourtant je ne pense l'Ai déclarer nulle part ailleur que dans util.hCitation:
"int __cdecl DlgSelFicName(class CWnd *,class CString &,char const *,int)" (?DlgSelFicName@@YAHPAVCWnd@@AAVCString@@PBDH@Z) already defined in DlgFindInFiles.obj
: fatal error LNK1169: one or more multiply defined symbols found
auriez vous une idée de mon erruer?
c bizarre en plus defois ça marque l'erreur, et desfois non.... :?: :?: :?:
Tu l'as déclarée et implémentée dans le .h, et ça pose porblème. Il faut déclarer dans le .h, et implémenter dans le .cpp.
http://c.developpez.com/faq/cpp/?pag...ASS_header_cpp