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
[71322] TIdServer를 이용한 Chart 그리기..에러..도와주세요..
문도 [] 3476 읽음    2014-05-16 18:10

TIdServer를 이용하여 전송받은 데이터를 차트에 그리는 프로그램을 만들고있습니다.
코드는 대충 아래와 같습니다. 사정상 풀코드를 올리지는 못하구요ㅜ
설명드리자면
TcpServer의 InputBuffer가 차있으면 거기서 데이터를 읽어오고
데이터 읽은것을 기반으로 Chart에 그리는 형식입니다. 자료가 16bit 형식이라
BytesToShort를 이용하여 변형하였습니다.

그런데 Debug 모드로 한줄씩 돌려보면 문제가 없어보이는데 Run을 하면
Project1.exe raised exception class $C0000005 with message
'access violation at 0x0067429a: read of address 0x00000004'. 라는 메시지가 뜨면서 에러가납니다.
원인이 뭘까요? 도와주세요.

void __fastcall TForm1::IdTCPServer1Execute(TIdContext *AContext)
{
    TByteDynArray Buff;

    while(AContext->Connection->Connected())
    {
        if(!AContext->Connection->IOHandler->InputBufferIsEmpty())
        {
            len = AContext->Connection->IOHandler->InputBuffer->Size;
            AContext->Connection->IOHandler->ReadBytes(Buff, len, true );
        }
        for(int i = 0; i<(int)(len/2); i++)
       {
            BuffArray = BytesToShort(readTByte, 2*i);
        }
        UpdateArray();
    }
}

void __fastcall TForm1::UpdateArray()
{
    Series1->XValues->Value = BuffArray;
    Series1->XValues->Count = (int)(len/2);
    Series1->XValues->Modified = true;
    Series1->Repaint();
}

+ -

관련 글 리스트
71322 TIdServer를 이용한 Chart 그리기..에러..도와주세요.. 문도 3476 2014/05/16
71330     Re:TIdServer를 이용한 Chart 그리기..에러..도와주세요.. 은둔쿤타 3312 2014/05/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.