2009-07-26 79 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,您可以通過NULL爲LoadResource()的第一個參數,以及應用程序的資源將被搜索。

從LoadResource文檔:

如果HMODULE是NULL,系統加載 從模塊的資源,這是用來創建當前進程 。

希望有所幫助。

-Scott

0

錯誤0x716意味着:

ERROR_RESOURCE_NAME_NOT_FOUND 1814 (0x716)

指定的資源名稱不能 找到的圖像文件英寸

你是否向LoadBitmap傳入正確的第一個參數?

的hInstance
[中]句柄,以便該可執行文件 包含要加載位圖模塊的實例。

是否將資源文件編譯爲.res文件幷包含在最終的可執行文件中?

+0

1.我傳遞給LoadBitmap由DllMain給我的hInstance參數。 2.是的。它編譯好。我可以告訴,因爲我也有鏈接的版本信息,並且它顯示正常。 3.如果您閱讀該代碼,則可以回答。 – 2009-07-26 02:36:26

相關問題