DLL에서 함수의 동적 로드
C의 DLL(동적 링크 라이브러리)에서 함수를 동적으로 로드하면 별도의 정의된 기능에 액세스할 수 있습니다. 런타임에 모듈. 이 문제에 접근하는 방법은 다음과 같습니다.
1. DLL 로드:
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll");<br>
이 단계에서는 DLL을 메모리에 로드하고 핸들을 반환합니다. 입니다.
2. 함수 포인터 가져오기:
DLL 내의 함수에 액세스하려면 GetProcAddress를 사용하여 해당 주소를 가져와야 합니다:
<br>typedef int (__stdcall *f_funci )(); // 함수 포인터 유형 정의<br>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");<br>
이 예에서는 함수 이름이 "funci"이고 다음을 사용한다고 가정합니다. __stdcall 호출 규칙
3. 함수 호출:
함수 포인터가 있으면 다른 함수처럼 함수를 호출할 수 있습니다.
<br>int result = funci(); <br>
4. DLL에서 함수 내보내기:
DLL에서는 다른 모듈에서 함수에 액세스할 수 있도록 __declspec(dllexport)를 사용하여 함수를 내보내야 합니다.
<br>int __declspec(dllexport) __stdcall funci() {<br> // 함수 정의<br>}<br>
추가 팁:
위 내용은 C의 DLL에서 함수를 동적으로 로드하고 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!