none
Converter int to LPCTSTR RRS feed

  • Pergunta

  • Amigos, não estou conseguindo fazer a conversão de um valor int para LPCTSTR.
    É o seguinte:
      int * teste;
      teste = 50;

      Agora preciso mostrar o valor contido no ponteiro * teste através do SetWindowText (teste);
      O problema é que precisa ser LPCTSTR para poder ser exibido atraves de SetWindowsText();

    Como eu converto * teste para LPCTSTR ??

    Abraço.
    sábado, 17 de outubro de 2009 20:22

Respostas

  • voce está tentando atribuir um valor, 50, a um ponteiro. A menos que seu programa tenha acesso a essa área de memória, essa operação irá gerar GPF.

    O que eu acho que voce está querendo fazer é

    int teste;
    char szBuffer[128];

    teste = 50;

    _itoa( teste, szBuffer, sizeof( szBuffer ), 10 );

    a função itoa  stands for integer to alphanumeric (char)

    que é o que voce precisa, converter de inteiro para char

    http://msdn.microsoft.com/en-us/library/0we9x30h%28VS.80%29.aspx

    e depois use o buffer em SetWindowsText( );

    Abraços, cox

    cox
    • Marcado como Resposta JoãoCarlos sexta-feira, 30 de outubro de 2009 03:58
    terça-feira, 20 de outubro de 2009 22:25
  • use o _itoa(..) para converter de inteiro para char, e use no SetWindowText(..)

    dessa forma voce irá converter a variável somatória para um buffer temporário e pode usar no SetWindowsText(..)

    a função SetWindowText(..) só aceita char * como parametro.


    cox
    • Marcado como Resposta JoãoCarlos sexta-feira, 30 de outubro de 2009 03:58
    quinta-feira, 22 de outubro de 2009 02:02

Todas as Respostas

  • voce está tentando atribuir um valor, 50, a um ponteiro. A menos que seu programa tenha acesso a essa área de memória, essa operação irá gerar GPF.

    O que eu acho que voce está querendo fazer é

    int teste;
    char szBuffer[128];

    teste = 50;

    _itoa( teste, szBuffer, sizeof( szBuffer ), 10 );

    a função itoa  stands for integer to alphanumeric (char)

    que é o que voce precisa, converter de inteiro para char

    http://msdn.microsoft.com/en-us/library/0we9x30h%28VS.80%29.aspx

    e depois use o buffer em SetWindowsText( );

    Abraços, cox

    cox
    • Marcado como Resposta JoãoCarlos sexta-feira, 30 de outubro de 2009 03:58
    terça-feira, 20 de outubro de 2009 22:25
  • Muito obrigado, cox, por dispor sua ajuda.

    Vou tentar explicar com mais detalhes meu problema e minha intenção:
    Meu aplicativo captura imagens diretamente de uma webcam, exibindo essas imagens ao vivo na tela e sob comando, grava em disco um quadro extraído dessa exibição ao vivo. Feito isso, eu abro o arquivo em disco, carrego esses dados em um ponteiro e faço a comparação dessa imagem gravada em disco com a imagem que está sendo exibida ao vivo. Pois bem, durante a comparação pra cada byte similar eu vou acrescendo +1 a uma variável static int somatória. Ao final da comparação de cada quadro ao vivo de imagem quero mostrar em uma editBox o valor de somatória.
    Ao tentar apresentar diretamente somatória em outra classe onde somatoria tem visibilidade através de SetWindowText (somatoria) tenho o seguinte retorno:
    error C2664: 'CWnd::SetWindowTextA' : cannot convert parameter 1 from 'int' to 'LPCTSTR', Conversion from integral type to pointer tpe requires reinterpret_cast, C-style cast or function-style cast.

    Veja bem, o que preciso fazer é somente a cada iteração da comparação de quadros de imagem apresentar o valor de somatoria, e para isso estou utilizando uma editBox. Caso haja uma forma mais fácil de fazê-lo, eu aceito sugestões.

    Abraços

    JoãoCarlos
    quarta-feira, 21 de outubro de 2009 12:40
  • use o _itoa(..) para converter de inteiro para char, e use no SetWindowText(..)

    dessa forma voce irá converter a variável somatória para um buffer temporário e pode usar no SetWindowsText(..)

    a função SetWindowText(..) só aceita char * como parametro.


    cox
    • Marcado como Resposta JoãoCarlos sexta-feira, 30 de outubro de 2009 03:58
    quinta-feira, 22 de outubro de 2009 02:02
  • Muito bom, amigo cox, fiz da forma como voce me sugeriu e deu certo.

    Muito obrigado pela colaboração.

    Grande abraço

    JoãoCarlos
    sexta-feira, 30 de outubro de 2009 04:00