본문 바로가기

My Study/Programming&Theory

TLS Callback 소스코드


위와 같이 코드를 짜시고 컴파일을 해주시고 실행을 시키면 됩니다.
하지만 주의해야할 것이 있습니다.
TLS Callback으로 등록된 함수는 main함수 이전에 한번 실행되고 이후에 한번 또 실행 되더군요.(무조건 실행;;)
main함수 이후에 실행되는 부분은 크게 신경쓸 부분이 아닙니다.

main함수 앞에서 실행되는 TLS Callback부분을 제대로 작동시키기 위해서는 컴파일 옵션을 잘 설정해 주어야합니다.

보통 완벽하게 소스를 짠 상태에서 이제 프로그램을 배포하기 위해서 보통 릴리즈 모드로 바꾸고 런타임 라이브러리를
다중 스레드로 해줄 것입니다. 위와 같이 해주면 프로그램 용량은 쫌 커지겠지만 따로 dll을 배포하거나 그럴일은 없을 것입니다.
하지만 위와 같이 컴파일 옵션을 주고 파일을 만들게 되면 main함수 이전에 실행되는 TLS Callback함수는 실행되지 않을 것입니다.

위와 같이 " 안녕하세요?? ^^ " 전에 "======= Find Debugger Program =======" 가 출력이되어야 하는데 출력이 되질 않고 있습니다. main함수 이전에 TLS Callback함수를 실행시키기 위해서는 컴파일 옵션을 바꿔줘야합니다.

위와 같이 바꾸시고 컴파일 후 다시 실행시켜보도록 하겠습니다.

정상적으로 실행이 되는군요. 만약 디버거 모드로 실행을 시키면??

main함수 이전에 발견해 버리는 것을 볼 수 있습니다.