2009-07-26 3 views
1

그래서이 오류가 계속 발생하는 이유를 알 수 없습니다. 여기에 관련 코드는 다음과 같습니다비트 맵 리소스에 액세스하면 오류 코드 0x716이 발생합니다.

//////////////////////// In resource.h /////////////////////////// 
//{{NO_DEPENDENCIES}} 
// Microsoft Visual C++ generated include file. 
// Used by Freestyle.rc 
// 
#define IDB_BITMAP1      101 

// Next default values for new objects 
// 
#ifdef APSTUDIO_INVOKED 
#ifndef APSTUDIO_READONLY_SYMBOLS 
#define _APS_NEXT_RESOURCE_VALUE  102 
#define _APS_NEXT_COMMAND_VALUE   40001 
#define _APS_NEXT_CONTROL_VALUE   1001 
#define _APS_NEXT_SYMED_VALUE   101 
#endif 
#endif 

//////////////////////// In the resource file //////////////////// 
// Microsoft Visual C++ generated resource script. 
// 
#include "resource.h" 

. 
. 
. 

///////////////////////////////////////////////////////////////////////////// 
// 
// Bitmap 
// 

IDB_BITMAP1    BITMAP     "NOP.bmp" 


//////////////////////// In DllMain: ///////////////////////////// 
// Save the global module we're attached to other files can access it. 
g_hLocalModule = hModule; 

UnsafePrintToLog(SIMPLE_FORMAT_STRING, "Starting session..."); 

// Display the splash screen. 
CSplash splashScreen(IDB_BITMAP1); 


//////////////In CSplash::CSplash(WORD resourceID) ////////////// 
BitmapSplash = LoadBitmap((HINSTANCE)g_hLocalModule, MAKEINTRESOURCE(resourceID)); 

if(BitmapSplash == NULL) 
{ 
    volatile int temp = GetLastError(); 
    Exit("Could not load the splash screen bitmap."); 
} 

답변

1

DLL 또는 DLL을로드 한 응용 프로그램에서로드하려고하는 비트 맵 리소스입니까?

DLL에 리소스를로드 할 때 두 가지 소스가 있으므로 hInstance 매개 변수가 중요한 이유는 다음과 같습니다.

DllMain에서 가져온 HINSTANCE 매개 변수를 사용하면 해당 리소스가 DLL의 일부라는 것을 의미합니다. 자원이 응용 프로그램이 당신의 DLL을로드에있는 경우

, 당신은 LoadResource()의 첫 번째 인수로 NULL을 통과 할 수 있으며, 응용 프로그램의 리소스가 검색됩니다. LoadResource에 대한 문서에서

:

HMODULE가 NULL 인 경우

, 시스템 부하 현재 프로세스를 만드는 데 사용 했다 모듈에서 자원.

희망이 있습니다.

-Scott

0

오류 0x716 의미 :

ERROR_RESOURCE_NAME_NOT_FOUND 1814 (0x716)

지정된 리소스 이름이 이미지 파일에 을 찾을 수 없습니다.

정확한 첫 번째 매개 변수를 LoadBitmap에 전달하고 있습니까?

HINSTANCE
[에] 실행 파일 가로드 할 비트 맵을 포함하는 모듈의 인스턴스 핸들.

리소스 파일이 .res 파일로 컴파일되고 최종 실행 파일에 포함됩니까?

+0

1. 나는 LoadBitmap에 DllMain 나에게 주어진 HINSTANCE 매개 변수를 전달합니다. 2. 예. 그것은 잘 컴파일합니다. 나는 또한 버전 정보가 링크되어있어 잘 나타낼 수있다. 3. 코드를 읽는다면 대답 할 수 있습니다. –

+0

LoadBitmap을 호출하기 바로 전에 g_hLocalModule이 Dll에서로드 된 것과 동일한 값을 가지고 있는지 확인할 수 있습니까? –

+0

예, 이미 있습니다. –

관련 문제