So che le funzioni GetCurrentDirectory() e SetCurrentDirectory() esistono nel framework MFC, ma non ho un oggetto CFtpConnection nella mia applicazione. Ho una semplice classe derivata da CWinApp, e vorrei recuperare la sua directory di lavoro all'avvio del programma. Qual è il metodo più semplice per raggiungere questo obiettivo? Grazie in anticipo per i consigli.MFC: funzione GetCurrentDirectory
risposta
GetCurrentDirectory è una semplice funzione API Win32, quindi basta chiamare in questo modo:
TCHAR currentDir[MAX_PATH];
GetCurrentDirectory(MAX_PATH, currentDir);
C'è lo stesso codice, ma utilizzando la classe CString (non dimenticate di chiamare 'ReleaseBuffer()' 'per il vostro oggetto CString'): ' CString CurDir; GetCurrentDirectory (MAX_PATH, curDir.GetBufferSetLength (MAX_PATH)); curDir.ReleaseBuffer(); ' – Mar
Presumo che si sta tentando di ottenere la directory in cui il file exe si trova invece che nella directory corrente. Questa directory può essere diversa dalla directory corrente.
TCHAR buff[MAX_PATH];
memset(buff, 0, MAX_PATH);
::GetModuleFileName(NULL,buff,sizeof(buff));
CString strFolder = buff;
strFolder = strFolder.Left(strFolder.ReverseFind(_T('\\'))+1);
Il percorso del exe (o dll) non è necessariamente la directory corrente. Non appena questo non è più il caso, si incontrano problemi se si utilizza questa soluzione. – Alex
Di cosa stai parlando? questa soluzione è solo per evitare il caso in cui la directory corrente è diversa dalla directory in cui si trova il file exe. La domanda è cambiata dall'originale richiesto. – Gisway
- 1. Funzione di misurazione MFC in millisecondi
- 2. Come chiamare la funzione mfc C++ in JavaScript HTML e come chiamare la funzione JavaScript in mfc C++?
- 3. MinGW supporta MFC?
- 4. MFC CView (CFormView) distruzione incidente
- 5. confuso su MFC/.net/WPF
- 6. Utilizzando libraby statica in MFC
- 7. ID comando/messaggio MFC resource.h
- 8. Converti MFC CString in intero
- 9. Come uccidere un thread MFC?
- 10. Rimozione del menu in MFC
- 11. MFC del browser cartella IFileOpenDialog
- 12. Pulsanti radio MFC - Comportamento DDX_Radio e DDX_Control
- 13. VS 2008, MFC: aggiungere OnInitDialog - come?
- 14. Come visualizzare OpenCV Mat su MFC View
- 15. Errore di Visual Studio Building: simbolo esterno non risolto _IID_IWICImagingFactory (MFC static MFC)
- 16. Ottieni la larghezza del testo in MFC
- 17. Domanda difficile su WPF, Win32, MFC
- 18. Dove traduco le caselle dei messaggi MFC
- 19. C++ CLI System.String^to MFC LPCTSTR
- 20. MFC non supporta WINVER inferiore a 0x0501
- 21. Prerequisiti per l'apprendimento della programmazione MFC
- 22. MFC: Perché il controllo spin funziona all'indietro
- 23. Come caricare immagini .png, .jpeg usando MFC?
- 24. UTF-8, CString e CFile? (C++, MFC)
- 25. MFC: come aggiungere suggerimenti nei componenti Cmenu?
- 26. Funzionalità divisa per MFC Cstring Class
- 27. "Nessuno dovrebbe usare più MFC" Perché?
- 28. Comando di modifica MFC comportamento strano
- 29. Aggiunta di un riquadro a un'applicazione MFC
- 30. In MFC perché devo creare un'istanza globale di CWinApp?
Vedi http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx ... niente a che fare con se o non si dispone di un oggetto CFtpConnection. – ChrisW
Dupe: http://stackoverflow.com/questions/875249/how-to-get-current-directory – ChrisW
In circostanze normali la cartella di lavoro sta per essere trovato nella cartella dei dati dell'applicazione utente e c'è una speciale API per ottenere posizioni di cartelle speciali. Quindi, devi decidere come stai gestendo la cartella di lavoro. –