none
ERRO RRS feed

  • Pergunta

  • PEssoal, tenho dois projetos em C++ nativo,

    Os dois projetos tem o mesmo código abaixo:

                                                            char* usu;
    							char* sen;
    							usu = (char*)GlobalAlloc(GPTR, len + 1);
    							sen = (char*)GlobalAlloc(GPTR, len + 1);
    							GetDlgItemText(hwnd, IDC_USUARIO, usu, len + 1);
    							GetDlgItemText(hwnd, IDC_SENHA, sen, len + 1);

    Em um projeto o código acima funciona perfeito, ele pega oque foi digitado no campo usuario e senha.

    Porem no outro projeto o mesmo código da oseguinte erro, as palavras usu e sen da linha GetDlgItemText, estão sublinhadas, e com o seguinte erro no IntelliSense: argument of type "char *" is incompatible with parameter of type "LPWSTR", estranho isso, pq os dois projetos teem o mesmo código, exatamente o mesmo,e em uma funciona e outro nao!

    --------------------- ERRO 2

    No projeto que o código acima funciona perfeitamente, quando eu escrevo códigos como: 

    MessageBox(hwnd, "Conectado com sucesso", L"Login", MB_OK | MB_ICONINFORMATION);

    No projeto que o primeiro código aqui do post esta com problema, eu tenho que por Antes de "Conectado com sucesso" a letra "L", que ficaria igual

    MessageBox(hwnd, L"Conectado com sucesso", L"Login", MB_OK | MB_ICONINFORMATION);

    Alguem poderia me ajudar?



    Thiii =)

    sábado, 24 de março de 2012 19:54

Respostas

  • Altere nas configurações do seu segundo projeto o conjunto de caracteres.

    Assim,você não precisará dizer para o compilador que a string é unicode,como a função requer wide characters(LPWSTR  = Long Pointer to Wide String).

    Usando a função MessageBoxA,como mostrei na resposta à sua pergunta anterior,isso não é necessário,pois a função não requer string unicode.

    A primeira imagem mostra usando o Unicode Character Set.

    A segunda mostra usando Multi-byte Character set.



    sábado, 24 de março de 2012 21:43