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

    Conversione a *char

    Ho la funzione
    codice:
    BOOL CvtkMFCDoc::OnOpenDocument(LPCTSTR lpszPathName)
    di MFC che viene richiamata quando faccio file->Apri, e mi mette in lpszPathName il path del file selezionato. Ho l'esigenza di passare quel path ad un'altra funzione che prende come parametro un
    codice:
    const *char
    Come faccio a convertirlo???
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perche' convertirlo? Hai avuto problemi in compilazione?

  3. #3
    Sì:
    codice:
    vtkDEMReader::SetFileName' : cannot convert parameter 1 from 'LPCTSTR' to 'const char *'
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Stai lavorando in UNICODE?

    Controlla nelle proprietà del progetto ...

  5. #5
    LPCTSTR viene definito come LPCSTR, che a sua volta viene definito come char *, a meno di non compilare il programma con la costante UNICODE. Capitano anche a me errori come il tuo, pur compilando il progetto come non-Unicode; per risolvere il problema è sufficiente passare il parametro effettuando un cast esplicito.
    P.S.: in applicazioni Windows ti consiglio vivamente di evitare di scrivere funzioni che accettano char* come parametro, e di utilizzare piuttosto il tipo TCHAR, definito in tchar.h, per creare applicazioni che si compilano senza problemi sia con che senza unicode.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Use Unicode character set...
    cosa metto? multi byte character set?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  7. #7
    Originariamente inviato da MItaly
    LPCTSTR viene definito come LPCSTR, che a sua volta viene definito come char * (a meno di non compilare il programma con la costante UNICODE); capitano anche a me errori come il tuo, ma è sufficiente passare il parametro effettuando un cast esplicito.
    se faccio un cast esplicito a char* sembra che mi prenda solo la prima lettera del path, la C
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  8. #8
    Originariamente inviato da mxa
    se faccio un cast esplicito a char* sembra che mi prenda solo la prima lettera del path, la C
    Use Unicode character set...
    cosa metto? multi byte character set?
    No, metti "Disabled" o qualcosa del genere.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    ho provato, adesso mi compila, ma in compenso poi a runtime ricevo degli errori dal programma, sembra che non riesca a trovare il file relativo al path, ma mi pare impossibile!
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da mxa
    Use Unicode character set...
    cosa metto? multi byte character set?
    Not Set

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 © 2025 vBulletin Solutions, Inc. All rights reserved.