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
[19867] [질문] Win98 과 WinXP 에서의 RS-232 통신 에러
kabaliero [] 885 읽음    2002-07-06 10:06

안녕하세요..

오늘 RS-232 통신을 하다가 발생한 문제인데요.. 고수님들의 답변을 부탁드립니다.

다름이 아니라, Win98에서는 통신이 잘 되던 프로그램이 XP에서는 WriteFile 함수 호출부분에서 아무 응답 없이 죽어버립니다.

XP에서 컴파일을 해봐도 같은 문제가 발생하면서 죽어버리네요..

도저히 해결책을 모르겠습니다.

아래 소스(생성자부분과 Write File 부분) 올립니다.. 부탁드리겠습니다.

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

   cc.dwSize = sizeof(COMMCONFIG);
   BuildCommDCB("9600,N,8,1", &cc.dcb);

   if ((hComm = CreateFile ("COM1", GENERIC_READ|GENERIC_WRITE,
  0, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
   {
      ShowMessage("Error opening COM port");
      return;
 }

   if (!SetCommState(hComm, &cc.dcb))
   {
      CloseHandle (hComm);
      ShowMessage("포트 설정 ERROR!");
      return;
   }
   cp.wPacketLength = sizeof(COMMPROP);
   GetCommProperties(hComm, &cp);

   bReading = TRUE;
   if ((hThread = CreateThread (NULL, 0,
    (LPTHREAD_START_ROUTINE)ReadThread, NULL,0, &id)) == INVALID_HANDLE_VALUE)
   {
      ShowMessage("Error creating READ thread");
      CloseHandle (hComm);
      return;
   }
}

========================================================================

int __fastcall TForm1::NetWriteString(unsigned char *pszString, int cbString)
{
   if(TX_enable)
   {
      TX_enable = 0;
    int i;
    LONG lrc;

      Tx_cnt = cbString;
      Test_tmr = send_time;

      for(i = 0 ; i < Tx_cnt ; i++)
      {
         Tx_Buf[i] = pszString[i];
      }

    for (i = 0; i < cbString; i++)
      {
         unsigned char Ch = pszString[i];
     if (!WriteFile(hComm, (LPBYTE)&Ch, 1, (LPDWORD)&lrc, NULL))
         {
        locProcessCommError(GetLastError ());
     }
      }
      TX_enable = 1;
   }
   return cbString;
}



+ -

관련 글 리스트
19867 [질문] Win98 과 WinXP 에서의 RS-232 통신 에러 kabaliero 885 2002/07/06
19897     Re:[질문] Win98 과 WinXP 에서의 RS-232 통신 에러 유영인.Chris 1276 2002/07/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.