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
[10211] Re:Re:Re:API CreateThread() 함수에 관한 질문입니다.
james [] 1656 읽음    2001-08-22 23:49
안녕하세요...

제가 좀 허접스럽습니다만은..
제가 쓰던 방식을 말씀드릴께요..

먼저 구조체를 하나 잡은다음
typedef struct _USERINFO
{
    BYTE        nMsg;
    BYTE        nMode;
    SOCKET        hSocket;
    SOCKADDR_IN    RemoteAddr;
    SYSTEMTIME    ConnectTime;

} USERINFO;

ListenThread(메인 함수에서 호출한 쓰레드 함수)에서 구조체를 초기화하고
UserThread(쓰레드함수)를 호출하면서 구조체를 넘겨줍니다.
DWORD WINAPI ListenThread(void* pData)
{
    USERINFO* pUserInfo;
    HANDLE hUserThread;
   
    while (1) {
        pUserInfo = new USERINFO;
        pUserInfo->nMsg = 0;
        pUserInfo->nMode = 0;
        pUserInfo->hSocket = accept(g_hListenSocket,
            (LPSOCKADDR)&pUserInfo->RemoteAddr, &nLen);
            
   
    hUserThread = CreateThread(NULL, 0, UserThread, pUserInfo, 0, &dwThreadID);
        ...........
        ...........

        }

        ...........
        ...........
}

UserThread에서는 다음과 같이 사용을 합니다.
DWORD WINAPI UserThread(void* pData)
{
        USERINFO* pUserInfo;
   
        pUserInfo = (USERINFO*)pData;

        ......

        .....

}

답변이 될려는지 잘 모르겠습니다만....

조그만 도움이라도 되었으면 좋겠습니다..


수야 님이 쓰신 글 :
: 안녕하세요
:
: 우선 답변 감사드립니다. ^^
:
: 저도 구조체로 넘기구 있거든요
:
: 그런데 구조체로 넘긴이후 방법을 모르겠어요
:
: 사용을 못하겠더군요.. ㅡ_ㅡ
:
: 스트럭트를 넘긴후 그 스트럭트를 어떻게 사용해야하나요? ^^;;
:
: 넘 허접질문이지만.. 부탁드리겠습니다. ^^
:
:
:
: james 님이 쓰신 글 :
: : 안냐세요..저는 ThreadInfo에 들어갈것들을 구조체로 정의해서 집어넣습니다..
: : 수야님께서 아마 지금 네떡을 하실텐데..
: : 저는 네떡할때 서버쪽에서 각 클라이언트마다 스레드를 만들은 적이 있었는데..
: : 그때 각 유저들의 정보(IP,time,기타 인자들..)를 UserInfo라는 구조체로 만들어서
: : 스레드함수의 전달인자로 넘긴적이 잇거든용....
: :
: :
: : 도움이 될려나 몰겠습니다...
: :
: : 그럼 꾸벅~~~
: :
: :
: : 수야 님이 쓰신 글 :
: : :   DWORD nThreadID;
: : :   CreateThread(0, 0, RecvThread, (void*)ThreadInfo, 0, &nThreadID);
: : : 이렇게 호출하여
: : :
: : : DWORD WINAPI RecvThread(void *ThreadInfo) 이렇게 함수를 정의했습니다.
: : :
: : : 저는 함수 인자값이 ThreadInfo 말고 또 다른 것들이 필요한데요
: : :
: : : 어떻게 추카시켜주어야 하나요?
: : :
: : : 답변부탁드릴께요

+ -

관련 글 리스트
10165 API CreateThread() 함수에 관한 질문입니다. 수야 1076 2001/08/22
10175     Re:API CreateThread() 함수에 관한 질문입니다. james 1470 2001/08/22
10178         Re:Re:API CreateThread() 함수에 관한 질문입니다. 수야 1895 2001/08/22
10211             Re:Re:Re:API CreateThread() 함수에 관한 질문입니다. james 1656 2001/08/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.