CTMuint CTMCALL myCTMRead(void * aBuf, CTMuint aCount, void * aUserData)
{
static int count = 0;
static void* ptr = NULL;
if (ptr != aUserData)
{
count = 0;
ptr = aUserData;
}
memcpy((char*)aBuf, (char*)ptr + count, aCount*sizeof(char));
count += aCount;
return aCount;
}
pvFile为数据流指针
CTMimporter* pCTMimporter = new CTMimporter();
CTMreadfn pCTMreadfn = myCTMRead;
pCTMimporter->LoadCustom(pCTMreadfn, pvFile);
int iWCount = 0;
CTMuint CTMCALL myCTMWrite(const void * aBuf, CTMuint aCount, void * aUserData)
{
static int countW = 0;
static void* ptr = NULL;
if (ptr != aUserData)
{
countW = 0;
ptr = aUserData;
}
memcpy((char*)ptr + countW, (char*)aBuf, aCount * sizeof(char));
countW += aCount;
iWCount += aCount;
return aCount;
}