2012-03-24 3 views
0

Windows에서 LoadLibrary (C++)를 사용하여 런타임에 동적으로 라이브러리를로드 할 때 프로그램의 나머지 부분과 동일한 메모리에로드되거나 해당 라이브러리에서 참조되는 함수를 호출하는 것과 관련된 오버 헤드가있을 수 있습니까? 즉, 함수를 자주 호출 할 계획이라면 컴파일시 프로그램에 링크 한 것처럼 라이브러리에서 빠를 것인가 아니면 성능을 잃는가? LoadLibrary를 사용하여 효과를 얻으시겠습니까?

(이것은 lib 디렉토리/운영자와 파일을 통해 컴파일 시간 동안 또는 프로그램에 대한 링크 라이브러리 관련이 없습니다.) DLL이로드되고 함수 포인터 변수가 GetProcAddress를 초기화되면

+0

가능한 이유는 무엇입니까? __declspec (dllimport) 필요하지 않은 경우?] (http://stackoverflow.com/questions/4489441/why-when-is-declspec-dllimport-not-needed) –

답변

1

가있을 외설 함수 호출에서 오버 헤드가 없습니다.

+0

에 의해 "there "오버 헤드가 없다"는 의미입니까? 그냥 두 번 확인해. – user980058

+0

.. 네, "오버 헤드가 없습니다." –

+0

기본적으로 함수 이름은 함수의 바이너리 코드가 시작되는 메모리의 주소에 대한 포인터입니다 ... 정적 라이브러리를 링크하면 컴파일러는 함수 이름을 매핑합니다 주소로 ... 런타임에 dll을로드하면 GetProcAddress로 포인터를 초기화합니다. –

관련 문제