|
guest 님이 쓰신 글 :
: jeroh 님이 쓰신 글 :
: : 모든 함수를 다 수행하고 access violation이 일어 납니다.
: :
: : void __fastcall TfrmData::pListDblClick(TObject *Sender)
: : {
: : if (pList->ItemIndex < 0)
: : return;
: :
: : FILE* fp = fopen("VP.txt","w");
: : fclose(fp);
: :
: : char target[50];
: : memset(target,NULL,sizeof(target));
: : strcpy(target, pList->Items->Strings[pList->ItemIndex].c_str());
: : tempfunction(target);
: :
: : resMemo->Lines->Clear();
: : resMemo->Lines->LoadFromFile("KorSen.rst");
: : textout->Lines->LoadFromFile("VP.txt");
: : debugMemo->Lines->LoadFromFile("DM.txt");
: :
: : } ------ 1.
: :
: : listbox에서 한 item을 click하면 실행되는 함수인데,
: : 1번 line을 넘어 가지 못하고 access violation이 일어나거든요.
: : view CPU해서 따라 가보면, mouseclick과 관련된 부분에서 violation이 나는 것으로 확인이 되는데,아무래도 이해할수가 없어서요.
: :
: : 아마도 tempfunction 내에서의 어떤 오류가 여기에 영향을 끼치지 않았나 싶은데..
: : 어떤경우에 이런 문제가 발생할 수 있나요?
: :
: :
: :
: 첫번째 라인도 실행하지 못해 메모리 엑세스 에러가 난다면
: pList->ItemIndex 이함수가 리스트박스에서 아이템이 선택되지 않을때의 경우를
: 대비해 try 문으로 한번 감싸줘보시길...
:
: try{
: if (pList->ItemIndex < 0)
: return;
: }catch(...){Application->MessageBox("선택 해야되는데요","확인",MB_OK|MB_ICONWARNING);}
:
: 그럼 참고하시길........
첫번째 line이 아니라 함수를 닫는 맨 마지막 line(--------1. 이라고 해놓은 부분) 이었거든요.
어쨌든 도움 말씀 감사드리구요,
문제는 해결했습니다.
예상했던 대로 tempfunction내에서 memory 관련 문제가 있었습니다.
그렇지만, 그게 왜 이 시점에서 문제를 일으키는 건지는 여전히 미지수군요..
|