Tôi có một mảng TCHAR
trong mã C++ mà tôi muốn gán các chuỗi tĩnh cho nó.Cách gán giá trị cho một mảng TCHAR
tôi đặt một chuỗi ban đầu để nó qua
TCHAR myVariable[260] = TEXT("initial value");
Tất cả mọi thứ hoạt động tốt về vấn đề này. Tuy nhiên, khi tôi chia nó thành hai dòng như trong
TCHAR myVariable[260];
myVariable = TEXT("initial value");
nó lỗi và đưa ra một lỗi biên dịch:
error C2440: '=': cannot convert from 'const char [14]' to 'TCHAR [260]'
nên không phải là TEXT()
chức năng làm chính xác những gì tôi muốn ở đây? chuyển đổi chuỗi đã cho thành TCHAR
s? Tại sao nó hoạt động, khi đặt hai dòng lại với nhau? Tôi phải thay đổi điều gì để nó hoạt động?
Một số điều khó hiểu khác mà tôi đã gặp phải:
Tôi đã tìm kiếm trên Internet cho nó và đã thấy rằng cũng có _T()
và _TEXT()
và __T()
và __TEXT()
. Chúng là gì? Tôi nên sử dụng cái nào trong môi trường nào?
+1 để avakar. Trên một mặt lưu ý, sử dụng TCHAR thay vì WCHAR hoặc char, tùy thuộc vào thiết lập dự án của bạn (Unicode/ASCII) macro TCHAR sẽ được định nghĩa là WCHAR/char. Và tương tự như vậy, sử dụng các hàm bảo mật dựa trên _t như _tcscpy_s, _tcscat_s, v.v. sẽ được định nghĩa lại dựa trên proj của bạn. cài đặt như wcscpy hoặc strcpy. 2 xu của tôi. – legends2k
Tôi đã thử điều này, có lỗi này: lỗi C2664: 'wcscpy': không thể chuyển đổi tham số 2 từ 'const char [8]' thành 'const wchar_t *' –
@ user396483, đã thử cái gì? Bạn rõ ràng là trộn các phiên bản str, _tcs và wcs với nhau. – avakar