순수 리소스 DLL 생성 및 호출
3524 단어 dll
수천 개의 정청으로 노래를 들을 때, 대화상자, 메뉴, 아이콘 등 모든 자원을 ttpres에 두는 것을 알 수 있다.dll의 동적 라이브러리에서 이런 사용법에 대해 줄곧 궁금했는데 하루가 걸려서 마침내 깨달았다. 순수 자원 DLL은 아이콘, 비트맵, 문자열 및 대화 상자와 같은 자원만 포함하는 DLL입니다.순수 리소스 DLL을 사용하는 것은 여러 프로그램 간에 동일한 리소스 그룹을 공유하는 가장 좋은 방법입니다.다양한 언어로 로컬화된 리소스를 제공하는 것도 좋은 방법입니다.
순수 리소스 DLL 생성
순수 리소스 DLL을 만들려면 새 Win32 DLL(비 MFC) 프로젝트를 만들고 리소스를 이 프로젝트에 추가합니다.
순수 리소스 DLL을 사용하는 응용 프로그램은 LoadLibrary를 호출하여 DLL에 명시적으로 링크해야 합니다.리소스에 액세스하려면 일반 함수 FindResource 및 LoadResource를 호출합니다. 이 두 함수는 모든 리소스 유형에 유효하거나 다음 리소스별 함수 중 하나를 호출합니다.
리소스를 사용한 후에는 응용 프로그램에서 FreeLibrary를 호출해야 합니다.
자원 DLL 호출
일부 리소스 동적 라이브러리 호출의 경우 DLL 핸들을 가져오고 DLL 핸들과 리소스 ID를 통해 리소스 핸들을 가져오는 것이 아니라 BMP의 경우 코드는 다음과 같습니다.
1 hmodule = LoadLibrary("ExtendDLL.dll"); // DLL
2 HDC m_hdcMem;
3 m_hdcMem = CreateCompatibleDC(hdc);
4 BITMAP bm;
5 RECT rect;
6
7 HBITMAP hBitmap = LoadBitmap(hmodule,"DIB_BKGD_HF"); // BMP
8 GetObject( hBitmap, sizeof BITMAP, &bm);
9 SelectObject( m_hdcMem, hBitmap);
10 GetClientRect( hWnd, &rect);
11 BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,m_hdcMem,0,0,SRCCOPY);
12 ReleaseDC( hWnd, m_hdcMem );
13 FreeLibrary(hmodule);
천천정청처럼 사용하면 이럴 필요가 없습니다. 모든 자원은 DLL에 있습니다. 프로그램 창을 초기화하기 전에 AfxSetResourceHandle로 자원 모듈을 지정하고 해당하는 DLL 자원 파일 Resource를 포함합니다.h는 정상적으로 만들어진 것과 같이 사용할 수 있지만 종료할 때 DLL을 방출하는 것을 주의하십시오.구체적으로는 더 이상 말하지 않겠다. 모두 코드를 봐라!
순수 리소스 대화 상자의 예:
ResDlgDemo.zip
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LoadLibrary에서 126 오류가 발생하면 원인이되는 파일 이름을 찾는 방법Loadlibrary에서 DLL을 동적으로 로드할 때 로드 실패입니다. 실패한 파일 이름은 알려주지 않습니다. 로드하고자 하는 DLL 자체를 로드할 수 없다면 이야기는 간단하지만, 대상 DLL이 다른 DLL을 로드하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.