Custom Resource, XML problem
Hello, I watched a video from " How To" series titled custom resources by
Mr.David Ching(Thank you Mr.Ching) and I tried to use it with a XML wrapping
class by Mr.Jerry Wang(Thank you Mr. Wang) which is available on CodeProject
site.
the problem that I have is when I tried to load a xml resource it copies
some extra characters to buffer that I have to manually remove before I can
used it in the class.
this is the code:
USES_CONVERSION;
CXml xXml;
LPCTSTR pcaResourceName;
LPSTR pcaResourceContent;
DWORD dwResourceSize;
JWXml::CXmlNodePtr pxNode, pxProperty;
JWXml::CXmlNodesPtr pxNodes, pxProperties;
//JWxml is namespace used by CXml
CString xName, xValue;
UINT i, uiChildCount, uiPropertyCount,k, uiID = 0;
int uiValue;
pcaResourceName = MAKEINTRESOURCE(IDR_XML_1);
HRSRC hXML = FindResource(AfxGetResourceHandle(), pcaResourceName,
_T("XML"));
HGLOBAL hMem = LoadResource(AfxGetResourceHandle(),hXML);
pcaResourceContent = (LPSTR) LockResource(hMem);
TRACE(pcaResourceContent);
//The output of this trace gives three extra character ??????
dwResourceSize = SizeofResource(AfxGetResourceHandle(),hXML);
LPSTR pcaXml = new char[(dwResourceSize*2) + 1];
//I doubled the size of buffer because Cxml accepts LPCTSTR so I have //to
convert it
memcpy((void*)pcaXml , (void*)(pcaResourceContent + 3),dwResourceSize);
//When I copy at start point of pcaResourceContent the Cxml loading //fails
but when I start copying from pcaResourceConteent+3 it goes well //and CXml
succeeds in loading it.
pcaXml[dwResourceSize*2] = '\0';
if(!xXml.LoadXml(A2W(pcaXml)))
{
delete[] pcaXml;
FreeResource(hMem);
return;
}
.....
I don't know what are these three extra characters. In resource view there
is nothing at the beginning of resource. Dose anybody know what these 3
characters are and can they have different lengths(other than 3)
Thanks,