Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Cách khác phục lỗi 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'?

  1. #1
    Ngày gia nhập
    03 2010
    Bài viết
    32

    Mặc định Cách khác phục lỗi 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'?

    trong hàm DrawText ghirawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
    trong đó szHello được khai báo là char *szHello="Hello Word"
    nó thông báo:
    error C2664: 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'
    trong khi đó, cái file nguồn mà em copy cái đoạn mã vẫn chạy được, em cũng bó tay không hiểu luôn. Bác nào biết chỉ em với

  2. #2
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    LPCWSTR = Long pointer const wide string. ( không nhầm là vậy ).
    Vì char là kiểu multibyte nên chuyển sang wide char 1 cách ngầm định là không ổn.
    Thử sử dụng kiểu WCHAR hoặc wchar_t hoặc TCHAR ( tùy thuộc vào bạn có cài đặt sử dụng UNICODE hoặc ASCII ) thay thế char xem sao.

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    error C2664: 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'
    Lỗi cho biết bạn đang dịch ở chế độ Unicode, nên DrawText sử dụng chuỗi wide-character.
    Bạn cần truyền vào wchar_t* thay thế char*
    What you see is never what you get...

  4. #4
    Ngày gia nhập
    03 2010
    Bài viết
    32

    thank, mình làm được rồi, chỉnh propertie lại là xong

  5. #5
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Trích dẫn Nguyên bản được gửi bởi nasural Xem bài viết
    thank, mình làm được rồi, chỉnh propertie lại là xong
    Nếu bạn cài đặt Character Set về Use Multibyte Character Set , thì rất có thể Prọect của bạn sẽ không hỗ trợ UNICODE.

  6. #6
    Ngày gia nhập
    12 2010
    Bài viết
    23

    Mặc định Cách khác phục lỗi 'DrawTextW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'?

    Làm như thế này, cấu hình thế nào cũng chạy. Còn tại sao thì đọc tài liệu căn bản nhé!

    Visual C++ Code:
    1. TCHAR szHello[] = _T("Hello Word");
    2. DrawText(hdc, szHello, -1, &rt, DT_CENTER);

    Trích dẫn Nguyên bản được gửi bởi MSDN
    If nCount is -1, then the lpchText parameter is assumed to be a pointer to a null-terminated string and DrawText computes the character count automatically.

Các đề tài tương tự

  1. Chuyển đổi char thành LPCWSTR
    Gửi bởi nguoixanh trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 13-02-2014, 11:35 AM
  2. Giải quyết lỗi C2664: 'cannot convert parameter 1 from 'char' to 'time_t *' như thế nào ?
    Gửi bởi phuongvan trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 3
    Bài viết cuối: 27-09-2012, 11:44 AM
  3. convert một mảng sang LPCWSTR trong API
    Gửi bởi longhacke trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 7
    Bài viết cuối: 19-06-2012, 03:37 AM
  4. Cho hỏi lỗi cannot convert parameter 3 from 'WORD *' to 'LPCWSTR'
    Gửi bởi chuong01 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 6
    Bài viết cuối: 27-08-2010, 04:05 AM
  5. [VC] Cannot convert parameter 1 from 'const char [23]' to 'const wchar_t *'
    Gửi bởi lychailon trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 09-12-2006, 11:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn