Lyn
조회 수 25209 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

DLLMain은 WinMain 이나 main 과는 다르게 제약이 많다.

나도 이걸로 크래시 낸 적이 많이몇번 있고 ... 


DLLMain은 일종의 "객체의생성자" 라고 보면 비슷하다.

"로딩중" 인 것이지 로딩이 끝난것이 아니다 라는것이다.


아래에는 Attach 시 기준으로 적었지만, Detach 에도 별 다를건 없다. kerner32.dll 이외의 dll은 이미 언로딩 되어있을 수도 있다.


이제 하지 말아야할것을 슬~슬 나열 해 보자. 


1. kernel32.dll 이외의 dll에 있는 함수 대부분.

kernel32.dll 이외의 dll이 로딩되어 있다는 보장은 전혀없다


2. 동기화코드

락, 언락 등의 코드


3. LoadLibrary, CreateProcess

다른 DLL 쓰지말라는말과 일맥상통. 


4. 전역객체 초기화, 메모리할당 등

메모리메니저가 로딩되었다는 보장이 없다


5. COM관련 코드

역시 보장없다


6. 예외 throw

C++ 객체 생성자에서 throw 하는것과 비슷한 대략므흣한 (...) 상황이 발생한다.


결론. 

DLLMain은 걍 비워 둬라. 그리고 Initialize 함수를 제공해라.
상당수의 라이브러리가 라이브러리 초기화 함수를 제공하는것은 다 이유가 있다!

(당장 GDI+와 Winsock2를 생각해봐라!) 

?

  1. [작성중] 윈도우 32bit, 64bit 프로그래밍시 주의할점

    Date2012.07.16 ByLyn Views27804
    Read More
  2. 특정 Thread가 Wait계열 함수에 의해 Block 중인지 확인하기

    Date2012.06.28 ByLyn Views27415
    Read More
  3. [작성중] C++ 에서 Fiber 를 이용한 Coroutine 사용하기

    Date2012.04.03 ByLyn Views24936
    Read More
  4. [작성중] v8 스크립트 연동

    Date2012.03.10 ByLyn Views25286
    Read More
  5. [작성중] 알려진 포트

    Date2012.02.20 ByLyn Views24763
    Read More
  6. C++11 lambda 간단사용법과 성능비교.

    Date2012.01.30 ByLyn Views32679
    Read More
  7. Boost 빌드 방법

    Date2012.01.14 ByLyn Views31806
    Read More
  8. DLLMain에서 하지 말아야 할것.

    Date2012.01.12 ByLyn Views25209
    Read More
  9. 새해다 ...

    Date2012.01.01 ByLyn Views28242
    Read More
  10. Trac, Mantis, Redmine + SVN 소스 한글 깨짐

    Date2011.12.20 ByLyn Views29915
    Read More
  11. MultiMedia Timer 의 Timer 해상도의 비밀

    Date2011.12.14 ByLyn Views28301
    Read More
  12. Intel Cilk plus And SampleCode - Parallel Programming

    Date2011.11.23 ByLyn Views28024
    Read More
  13. Visaul Studio Exception 발생시 해결방법

    Date2011.11.10 ByLyn Views28395
    Read More
  14. [Boost 살펴보기] 9. noncopyable

    Date2011.09.15 ByLyn Views27589
    Read More
  15. Mysql 툴

    Date2011.03.31 ByLyn Views37587
    Read More
  16. [개인자료] 프로그램 만들때 무조건 해야하는것..

    Date2011.01.26 ByLyn Views37272
    Read More
  17. 사용중인 FireFox 플러그인.

    Date2010.05.18 ByLyn Views42522
    Read More
  18. Google C++ Coding Style - 번역중

    Date2010.03.28 ByLyn Views39435
    Read More
  19. Boost 에서 자기 자신의 shared_ptr 리턴하기

    Date2010.03.02 ByLyn Views37993
    Read More
  20. [잡설] 앱스토어의 유행. 프로그래머에겐 과연?

    Date2010.02.19 ByLyn Views34472
    Read More
Board Pagination Prev 1 ... 2 3 4 5 6 7 ... 8 Next
/ 8