티스토리 뷰

답을 찾은 것 같습니다 .

진입 점 함수는 간단한 초기화 또는 종료 작업 만 수행해야합니다. DLL로드 순서에서 종속성 루프를 만들 수 있으므로 LoadLibrary 또는 LoadLibraryEx 함수 (또는 이러한 함수를 호출하는 함수)를 호출해서는 안됩니다. 이로 인해 시스템이 초기화 코드를 실행하기 전에 DLL이 사용될 수 있습니다. 마찬가지로 진입 점 함수는 프로세스 종료 중에 FreeLibrary 함수 (또는 FreeLibrary를 호출하는 함수)를 호출하면 안됩니다. 시스템이 종료 코드를 실행 한 후에 DLL이 사용될 수 있기 때문입니다.

-------------------

DllMain 함수가 OS 로더 잠금 내부에서 실행되고 해당 로더 잠금을 다시 얻으려는 시도 (예 : LoadLibrary 호출)가 교착 상태가되므로 진입 점에서 LoadLibrary를 호출 할 수 없습니다.

-------------------

하지 마십시오 결과의 아무것도 DLLMain의 내부. 진지하게. FreeLibrary를 호출하는 것은 더 나빠 집니다. free가 refcount를 0으로 줄이고 라이브러리가 실제로 해제되는 경우 가끔 교착 상태가 되기 때문 입니다.



출처
https://stackoverflow.com/questions/1903052
댓글
공지사항
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31