C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[3509] EAcess Violation Error문제는??
소영 [] 3808 읽음    2000-05-24 00:00
프로그램을 실행하여 (컴파일에런 없습니다.) 파일을 로드할 때 아래의 에러메세지가 나옵니다.

Project Beta.exe raised exception class EAcess Violation with messgae.
'Access violation at address 0040294C. Read of address FFFFFFFF'.
Process Stopped. Use Step or Run to continue.

코딩을 대략  적으면...

//Struct

struct values
{
    char date[30];
    char time[20];
    int  valvetime[10];
    int  injecttime_s;
    float set_rtemp;
    float set_jtemp;
    float temp1;
    float jacket;
    float heating;
 
};

values real_data;

//Loading  data...

    Form7->Memo1->Lines->LoadFromFile("c:\\Data\\data.cfg");  //<---- Memo1->Lines->SaveToFile("c:\\Data\\data.cfg"); 이런 식으로 다른폼(Form7)에서 따로 만듦   
    dat=fopen("c:\\Data\\data.dat","rb+");
    int flag;
    num_data=0;
    fseek(dat, 0L, SEEK_SET);

    while(1)
    {
        flag=fread((values *)&real_data,sizeof(real_data),1,dat);
        if(flag<=0) break;
        // set_point calc.
        sampletime_s=real_data.injecttime_s;
        for(int i=0;i<5;i++)
          soltime[i]=real_data.valvetime[i];
        real_temp1=real_data.temp1;
        real_jacket=real_data.jacket;
        real_control_heat=real_data.heating;

        num_data=StrToInt(real_data.time);
        MyDateTime=real_data.date;
        Edit4->Text=IntToStr(sampletime_s);
        Edit1->Text=IntToStr(soltime[0]);
        Edit2->Text=IntToStr(soltime[1]);
        Edit3->Text=IntToStr(soltime[2]);
        Edit5->Text=real_data.set_rtemp;
        Edit6->Text=real_data.set_jtemp;

    }

    fclose(dat);

//Writing Data...
  
    dat=fopen("c:\\Data\\data.dat","wb+");
    real_data.injecttime_s=sampletime_s;
    for(int i=0;i<5;i++)
         real_data.valvetime[i]=soltime[i];
    real_data.temp1=real_temp1;
    real_data.jacket=real_jacket;
    real_data.heating=real_control_heat;
    real_data.set_rtemp=StrToFloat(Edit5->Text);
    real_data.set_jtemp=StrToFloat(Edit6->Text);
    real_data.set_rtemp=set_rtemp;
    real_data.set_jtemp=set_jtemp;

    strcpy(real_data.date,MyDateTime.c_str());
    strcpy(real_data.time,ReactTime.c_str());
    fseek(dat, 0L, SEEK_END);
    fwrite(&real_data,sizeof(real_data),1,dat);
    fclose(dat);

아직 초보라 그런지 디버깅은 이런 에러는 어렵군요. T.T
파일을 Writing할 때 문제가 있는 것 같은데 정확한 원인을 모르겠습니다.
같은 타이머내에서 데이타를 읽고(실험장치로부터 읽습니다) 쓰길 같이
하는 것도 원인이 될수 있나요?
디버깅을 하면 각 변수에 들어가는 값은 정확합니다.
고수님들!! 
답변 꼭 부탁드립니다.

+ -

관련 글 리스트
3509 EAcess Violation Error문제는?? 소영 3808 2000/05/24
3526     Re:EAcess Violation Error문제는?? 3816 2000/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.