Q&A

  • CreateThread질문입니다...


hThread := CreateThread(nil, 0, Timer1Timer, nil, 0, ThreadID1);



라고 쓰레드를 하나 생성시켰는데...

"Not enough actual parameters" 라고 컴파일 시 에러가 발생합니다.

미치겠네요........

도와주세요..

2  COMMENTS
  • Profile
    드기 2001.10.25 20:12
    드기 wrote:

    >

    > hThread := CreateThread(nil, 0, Timer1Timer, nil, 0, ThreadID1);

    >

    > 라고 쓰레드를 하나 생성시켰는데...

    > "Not enough actual parameters" 라고 컴파일 시 에러가 발생합니다.

    > 미치겠네요........

    > 도와주세요..



    hThread := CreateThread(nil, 0, @Timer1Timer, nil, 0, ThreadID1);

    로 쓰레드를 만들때

    함수 Timer1Timer가 외부함수어어야 되네요..

    클래스 맴버함수면 위와같은 에러가 나네요.. -_-;

  • Profile
    이경문 2001.10.27 07:55
    참고로...

    Thread로 실행되는 코드는 그 규약이 다음과 같이 결정되어 있습니다.

    DWORD WINAPI ThreadFunc( LPVOID );

    calling convention은 WINAPI이고

    parameter는 LPVOID 한개만 넘길수 있고

    대개 thread에서 필요로 하는 구조체나 클래스의 포인터를 넘기게 되지요.



    C++에서는 ThreadFunc안에서 클래스 protected나 private 멤버들을 access할 수 있도록

    friend라는 예약어를 제공하고 있구요,

    델파이에서는 같은 unit인 경우 자동으로 protected나 private 멤버를 access할 수 있습니다.



    드기 wrote:

    > 드기 wrote:

    > >

    > > hThread := CreateThread(nil, 0, Timer1Timer, nil, 0, ThreadID1);

    > >

    > > 라고 쓰레드를 하나 생성시켰는데...

    > > "Not enough actual parameters" 라고 컴파일 시 에러가 발생합니다.

    > > 미치겠네요........

    > > 도와주세요..

    >

    > hThread := CreateThread(nil, 0, @Timer1Timer, nil, 0, ThreadID1);

    > 로 쓰레드를 만들때

    > 함수 Timer1Timer가 외부함수어어야 되네요..

    > 클래스 맴버함수면 위와같은 에러가 나네요.. -_-;