|
bmp 포맷을 읽어서 제가 만든 포맷으로 변환하는 클래스를 C++빌더에서 툴로 만들려고
인크루드 시켜서 쓰려고 하는데요.
shj 포맷(제가 만든 포맷)을 로드 할때 이상하게 무한 루프에 빠지는 건지
프로그램이 먹통이 되버리는 군요.
mfc나 vc에서 사용하면 아무런 문제 없이 잘 돌아가는데 말이죠.
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{//shjLoad button
OD->Filter="ShjFile(*.shj)|*.shj|All(*.*)|*.*";
AnsiString Temp;
if(OD->Execute())
{
shj.LoadingSHJ(OD->FileName.c_str());
for(int i=0; i<15; i++)
{
Temp.sprintf(&shj.BmpImage[i].FileName[0]);
ListBox1->Items->Add(Temp);
}
}
}
버튼 부분의 소스 입니다.
shj.LoadingSHJ(OD->FileName.c_str());
LoadingSHJ() 함수가 char * 로 인자를 받기 때문에 저렇게 줬습니다.
BmpImage[i].Data=new BYTE[ BmpImage[i].InfoHD.biSizeImage ];
ZeroMemory(BmpImage[i].Data, BmpImage[i].InfoHD.biSizeImage);
ReadFile(Rfpt,&BmpImage[i].Data[0], BmpImage[i].InfoHD.biSizeImage, &RWSize,NULL);
}
CloseHandle(Rfpt);
이 소스는 LoadingSHJ 함수 안에서 메모리를 확보하고 읽어들이는 부분인데
디버깅을 해보니까 이 부분에서 커서가 사라지고 먹통이 됩니다. -_-;;;
그림파일이라서 상당히 많은 메모리를 확보하는데...으음
뭐가 잘못 된건지 모르겠어요. C++빌더는 처음 써보는 거라 힘든게 여러가지 많군요 -_-;;
왜 잘 돌아가는 클래스를 그대로 가저다가 썼는데 먹통이 되버리는 걸까요-_-;;
|