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
[28916] 쓰레드를 쓰니까 메모장이 사라집니다.
바부팅이 [] 808 읽음    2004-02-26 16:50
안녕하세요?...
제가요..
한 프로그램에서 쓰레드를 세번 사용하는데요..

제일 처음 쓰레드를 썼을때는 아무 문제가 없었습니다.
(버튼1을 누르면 쓰레드1을 호출)

그러다가 또 다른 쓰레드를 만들었습니다. (버튼2를 누르면 쓰레드2를 호출)
그랬는데.. 메모장이 사라졌습니다.

이번에 세번째 쓰레드를 썼는데요.. (버튼3 클릭)
그 버튼클릭 이벤트가 끝나면 역시 메모장이 없어집니다..


프로그램을 종료하니까..

Project1.exe raised exception class EWin32Error with message 'Win32Error. Code:1400. 잘못된 창 핸들입니다'. Process stopped. Use Step or Run to continue;

이런 에러 메시지가 나오면서..

forms.hpp  에 있는
/* TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) { }
문장으로 가네요..


쓰레드와 관련된 코드는...

void __fastcall TForm1::Button3Click(TObject *Sender)
{
  mStackThreadAA =
    CreateThread(0,0,(unsigned long (__stdcall *)(void *))callRunStackAA,this,0,&mStackThreadIdAA) ;    // (윗줄이랑 이어진 문장임)

}

//-----------------------------------------

NT callRunStackAA(LPVOID * p)
{
    TForm1 * winStack = (TForm1 *) p ;
    winStack->bt_aa_testClick(Form1);
    CloseHandle(winStack->mStackThread1);
//-----------------------------------------

HANDLE mStackThreadAA ;
ULONG mStackThreadIdAA ;
friend UINT callRunStackAA(LPVOID * p) ;

//-----------------------------------------

이렇고요..

쓰레드를 사용하고 나서 뭐.. 해제 이런거 해줘야 되나요?..


프로그램 초보인데.. 쓰레드도 어디서 참고해서 사용한 것입니다.
메모장이 왜 사라지는지.. 어떻게 조치해야 되는지.. 혹시 알수 있나요?...
부탁드리겠습니다... 그럼 수고하세요..

+ -

관련 글 리스트
28916 쓰레드를 쓰니까 메모장이 사라집니다. 바부팅이 808 2004/02/26
28946     Re:쓰레드를 쓰니까 메모장이 사라집니다. 김용수 1139 2004/03/01
34526         Re:Re:쓰레드를 쓰니까 메모장이 사라집니다. 김용수 898 2004/03/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.