위와 같이 코드를 짜시고 컴파일을 해주시고 실행을 시키면 됩니다.
하지만 주의해야할 것이 있습니다.
TLS Callback으로 등록된 함수는 main함수 이전에 한번 실행되고 이후에 한번 또 실행 되더군요.(무조건 실행;;)
main함수 이후에 실행되는 부분은 크게 신경쓸 부분이 아닙니다.
main함수 앞에서 실행되는 TLS Callback부분을 제대로 작동시키기 위해서는 컴파일 옵션을 잘 설정해 주어야합니다.
보통 완벽하게 소스를 짠 상태에서 이제 프로그램을 배포하기 위해서 보통 릴리즈 모드로 바꾸고 런타임 라이브러리를
다중 스레드로 해줄 것입니다. 위와 같이 해주면 프로그램 용량은 쫌 커지겠지만 따로 dll을 배포하거나 그럴일은 없을 것입니다.
하지만 위와 같이 컴파일 옵션을 주고 파일을 만들게 되면 main함수 이전에 실행되는 TLS Callback함수는 실행되지 않을 것입니다.
위와 같이 " 안녕하세요?? ^^ " 전에 "======= Find Debugger Program =======" 가 출력이되어야 하는데 출력이 되질 않고 있습니다. main함수 이전에 TLS Callback함수를 실행시키기 위해서는 컴파일 옵션을 바꿔줘야합니다.
위와 같이 바꾸시고 컴파일 후 다시 실행시켜보도록 하겠습니다.
정상적으로 실행이 되는군요. 만약 디버거 모드로 실행을 시키면??
main함수 이전에 발견해 버리는 것을 볼 수 있습니다.
'My Study > Programming&Theory' 카테고리의 다른 글
알약 프로세스 죽이기 (10) | 2010.05.07 |
---|---|
예외처리 메커니즘 (0) | 2010.04.29 |
간단한 C코드에서 나는 오류 (0) | 2010.03.05 |
DLL 만들어보기 ( Implicit Linking, Explicit Linking ) (2) | 2010.02.12 |
쓰레드는 힙영역을 공유한다. (0) | 2010.01.09 |