Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [C++]String To LPCSTR

  1. #1
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32

    [C++]String To LPCSTR

    ragà uso il c++ da poco e mi sto disperando per convertire una dannata string in LPCSTR come posso fare?????
    vi posto una parte del codice:

    codice:
     int iRC = 0;
       std::vector<std::string> vecAviFiles;
      
         iRC = SearchDirectory(vecAviFiles, "C:", "txt");
       if(iRC)
       {
        MessageBox(0,"Errore","Avviso",0);
    
          return -1;
       }
       
      for(std::vector<std::string>::iterator iterAvi = vecAviFiles.begin();
       iterAvi != vecAviFiles.end();
       ++iterAvi)
    {
      Search=FindFirstFile((*iterAvi + "*.*"),&FileData);   while(!Finished) 
    {
     //codice....
    }
    }
    *iterAvi mi restituisce tutte le directory contenenti file txt poi con search trovo tutti i file di qualunque estensione in quelle directory
    l'errore che mi viene restituito è

    error C2664: 'FindFirstFileA': impossibile convertire il parametro 1 da 'std::basic_string<_Elem,_Traits,_Ax>' a 'LPCSTR'

    quindi dovrei convertire *iterAvi in LPCSTR prima di passarlo a Search come faccio?? help me!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: [C++]String To LPCSTR

    codice:
    {
        string s = *iterAvi + "*.*";
        
        Search=FindFirstFile(s.c_str(),&FileData);
    In testa al programma usa la

    using namespace std;

    invece di aggiungere sempre std::
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Aggiungo: come spiegato più chiaramente qui (in fondo), un LPCSTR non è altro che un const char *, che puoi ottenere da una stringa C++ semplicemente richiamandone il metodo c_str().
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    grazie 1000 ragà!!! funziona alla grande!!
    ora ho però un altro dubbio ... se volessi convertire la const char* che ho ottenuto in una char* come faccio??
    oppure se volessi convertire direttamente da string a const char* ???
    non immmaginate neppure come rimpiango il mio vecchio vb.net che dichiarava tutto con dim
    grazie ancora per la pazienza!!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da rs9000
    ora ho però un altro dubbio ... se volessi convertire la const char* che ho ottenuto in una char* come faccio??
    Che vuoi dire?

    oppure se volessi convertire direttamente da string a const char* ???
    Te l'ho già detto all'inizio di questo thread ...

    s.c_str()


    non immmaginate neppure come rimpiango il mio vecchio vb.net che dichiarava tutto con dim
    Il C/C++ è una cosa, il VB.NET un'altra ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    scusa intendevo dire:
    oppure se volessi convertire direttamente da string a char* ???
    ti spiego meglio se io metto in una funz If la const char* che ho ottenuto ricevo un errore

    codice:
    if(!var.FileScelto(var.app_path(),s.c_str())) 
    	{
    	//	MessageBox(NULL, "Errore", "Avviso", MB_ICONSTOP); 
    	}
    l'errore è
    C2664: impossibile convertire il parametro 2 da 'const char *' a 'char *'

    quindi la const char* s che ho ottenuto richiamando il metodo .c_str devo convertirla in una char *

    spero di essere stato chiaro....

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Cosa è var?

    Cosa è FileScelto? Cosa fai al suo interno?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    il codice non l'ho scritto io l'ho preso da un sito e lo sto modificando ..praticamente il programma entra in un file (file1) , copia tutto il codice, lo salva nella ram , poi crea un altro file con il codice che ha salvato in un altra directory (file2) che funziona come se fosse il file1!!
    cmq il mio probl è solo questo : convertire questa const char* in char* come faccio??? mi serve anche per altri progr non specificamente qst ...te l'ho riportato solo come esempio dell'errore
    grazie per le tue risposte fulminee!!

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da rs9000
    il codice non l'ho scritto io l'ho preso da un sito e lo sto modificando ..
    E allora ? Non puoi riportare il codice per farci capire quello che ti ho chiesto?

    cmq il mio probl è solo questo : convertire questa const char* in char* come faccio???
    Prova a scrivere semplicemente

    if(!var.FileScelto(var.app_path(), (char *)s.c_str()))
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di rs9000
    Registrato dal
    Jun 2009
    Messaggi
    32
    Funziona!!! grazie 1000!!!!!!!!!!
    inoltre ci sono riuscito pure io da solo con un altro metodo
    char* q;
    q = const_cast<char*>(s.c_str());

    da che non ci riuscivo a che ho 2 modi

    ancora grazie per le dritte !!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.