|
BOOL CMmmmDoc::FileOpen(LPCTSTR lpszFileName)
{
m_strFileName = lpszFileName ; //파일 열기 관련 2
FILE *stream = fopen(m_strFileName, "rb");
int file_size = ftell(stream); //여기서 는 값이 들어갑니다 -858993460
디버깅에서 file_size 벨류값....
char *buffer = new char[file_size]; //파일 싸이즈가 안넘어옴 ..... 그러므로 밑에 file_size도 무의미...
fseek(stream,0,SEEK_SET);
//memset(buffer,0,sizeof(char)*200); //이부분 sizeof
while(!feof(stream))
{
if(fread(buffer, sizeof(char),file_size,stream) == NULL)
return FALSE;
m_strText.Format("%s", buffer); // Format
}
UpdateAllViews(NULL);
fclose(stream);
return TRUE;
}
원래 동작하던걸 큰용량의 파일을 못불러와
파일사이즈 측정후 그만큼의 버퍼를 확보해서 화면에 뿌려줄려는 의도로 고치기 시작했는데요
파일 싸이즈를 int 선언뒤 new char 에서 값이 0이 됩니다.
값을 화면에 안넣고 맴돌다가 마지막것만 화면에 뿌립니다 ㅡㅜ.
버퍼 선언하는 부분(file_size sizeof 와 strText.Format부분... 어떻게 조치해야 할가여 ㅡㅜ..
|