Не пойму кто тупит я или msvc 9? банальнейший код: Код (Text): TCHAR szOUT[1024] = "asdf"; szOUT[0] = (TCHAR)"F"; szOUT[1] = (TCHAR)"D"; MessageBox(0, szOUT, "Тест", MB_OK); генерит: MOV EAX,0040211C MOV ECX,00402120 MOV BYTE PTR SS:[ESP+10],AL MOV BYTE PTR SS:[ESP+11],CL вместо: MOV EAX,[0040211C] MOV ECX,[00402120] MOV BYTE PTR SS:[ESP+10],AL MOV BYTE PTR SS:[ESP+11],CL В итоге в соответсвующих позициях строки вместо символов "F" и "D" оказываются младшие байты их адресов. Картина сохраняется и в unicode и в debug и в release и при отключении оптимизиции.
Как написал, так и работает) Код (Text): szOUT[0] = (TCHAR) *"F"; // или ты имел в виду szOUT[0] = (TCHAR) 'F'; // ?
хм и *"D" и 'D' генерят один и тот же код: MOV BYTE PTR SS:[ESP+11],44h хотя первое разименованная ссылка на строку, а второе символ. ещё раз спасибо - дошло кто тупит )