엔진 학습의 2 - 엔진 설계
HINSTANCE LoadLibrary(LPCTSTR pLibFileName)
ZFXRenderer.cpp
ZFXRenderer.h//만들기, 얻기, 놓기
ZFXRenderDevice.h인터페이스 정의
링크된 라이브러리를 로드하고 해제하려면 다음과 같이 하십시오.
메모리에 불러오는 dll을 한 번만 불러올 수 있도록 하십시오. 만약 다른 응용 프로그램도 이 dll을 사용하고 있다면 메모리가 방법이 있는지 확인하십시오.
dll에 적용합니다.
잠재적인 문제가 하나 있다.dll 내부로 들어가서 실행할 때 출력 방법의 주소를 조회할 수 있습니다.
FARPROC GetProcAddress(HMODULE hModule,LPCTSTR lpProName);
이 방법으로 dll 내부 방법의 주소를 얻어pointer에 저장할 수 있습니다 ( Create Render Device)
extern "C" {
HRESULT CreateRenderDevice(HINSTANCE hDLL, ZFXRenderDevice **pInterface);
typedef HRESULT (*CREATERENDERDEVICE)(HINSTANCE hDLL, ZFXRenderDevice **pInterface);
HRESULT ReleaseRenderDevice(ZFXRenderDevice **pInterface);
typedef HRESULT (*RELEASERENDERDEVICE)(ZFXRenderDevice **pInterface);
}
/**
* Create the dll objects. This functions loads the appropriate dll.
*/
HRESULT ZFXRenderer::CreateDevice(const char *chAPI) {
char buffer[300];
// decide which API should be used
if (strcmp(chAPI, "Direct3D") == 0) {
m_hDLL = LoadLibrary("ZFXD3D.dll");
if(!m_hDLL) {
MessageBox(NULL,
"Loading ZFXD3D.dll from lib failed.",
"ZFXEngine - error", MB_OK | MB_ICONERROR);
return E_FAIL;
}
}
else {
_snprintf(buffer, 300, "API '%s' not yet supported.", chAPI);
MessageBox(NULL, buffer, "ZFXEngine - error", MB_OK |
MB_ICONERROR);
return E_FAIL;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.