1
텍스트 파일을 읽고 Safearray에 데이터를 저장해야합니다.Safearray로 텍스트 파일 읽기
나는이 기능을 시도 :
bool Parse::LoadTxtFileIntoSafearray(string* strPath, SAFEARRAY** pByteArray)
{
bool bReturn = false;
string line;
int iOffset = 0;
char* pcBuffer = NULL;
std::ifstream infile (strPath->data());
if (!infile.fail())
{
infile.seekg(0, std::ios::end);
int iSize = infile.tellg();
infile.seekg(0);
pcBuffer = (char*)calloc(iSize,sizeof(char));
if(pcBuffer)
{
infile.read(pcBuffer, iSize);
iSize = strlen(pcBuffer);
SAFEARRAYBOUND sb;
sb.cElements = iSize;
sb.lLbound = 0;
*pByteArray = SafeArrayCreate(VT_UI1,1,&sb);
BYTE* pData;
SafeArrayAccessData(*pByteArray,(void **)&pData);
memcpy(pData, pcBuffer,iSize);
SafeArrayUnaccessData(*pByteArray);
delete pcBuffer;
pcBuffer = NULL;
bReturn = true;
}
}
return bReturn;
}
문제는 ... 파일의 크기가 읽기 바이트보다 더 큰 것입니다
잘못 무엇입니까?
안부 man-page에서 언급 한 바와 같이
주제에서 벗어나지 만 왜 'calloc'에서'delete'를 사용하고 있습니까? – Naveen
및 "safearray"란 무엇입니까? –
이유가 .. 또한 로컬 버퍼를 만들 수 있습니다 .. 나는 그것을 바꿉니다. – camelord