Здравствуйте, GrayWolf, Вы писали:
D>> .... D>> len=GetFileSize(hf,NULL); D>> bufr=(PCTSTR*)malloc(len+1); /* доп. байт под символ-терминатор (0) */
GW>Не нравится мне выделение памяти чем-то, хоть убейте. Вероятно тем, что выделяется память под набор строк, а не символов.
Мне этот момент тоже не нравится. Но не знаю как правильно сделать. Никак не могу одолеть WinAPI. Может надо буфер сделать символьным (CHAR) и bufr=(CHAR)malloc(len+1);
Только при создании символьного буфера надо указать заранее размер, который я не знаю, пока файл не открыт.
D>> WriteFile(hf,bufw,sizeof(bufw)+1,NULL,&olw);
GW>И вот тут расхождение: читаете вы unicode, а записываете в ansi. Для unicode-файлов требуется в начало записать два байта-сигнала: 0xFF и 0xFE.