i am trying to give my XML parsing code UNICODE support. if UNICODE is not defined it works fine. but if i define it it gives some garbage values. (i am showing it in mag box) the problem is in the
dwFileRead = static_cast<DWORD>(fread(ptempXML, sizeof(TCHAR), dwFileSize, pfTempXMLBuf));
statement. what are the changes i have to make in the code. the file successfully comes in pfTempXMLBuf. but ptempXML shows garbage.
pfTempXMLBuf = _tfopen(tcsBufXMLFileName, _T("w+"));
m_pNode->Print(pfTempXMLBuf, 0);
fseek(pfTempXMLBuf,0, SEEK_SET);
dwFileSize = _filelength(fileno(pfTempXMLBuf ));
ptempXML = new TCHAR[dwFileSize + 1];
if(ptempXML)
{
memset(ptempXML, 0, dwFileSize); // Required otherwise ending char are junk.
fseek(pfTempXMLBuf,0, SEEK_SET);
dwFileRead = static_cast<DWORD>(fread(ptempXML, sizeof(TCHAR), dwFileSize, pfTempXMLBuf));
ptempXML[dwFileRead] = _T('\0'); // Required as the file size is most larger then the actual file contain read which appends junk at end.
rc = ptempXML;
delete []ptempXML;
}