所以我不知道为什么我一直收到这个错误。这是相关的代码:
//////////////////////// 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.");
}
答案 0 :(得分:1)
您尝试在DLL或加载DLL的应用程序中加载的位图资源是什么?
在DLL中加载资源时,有两种可能的来源,这就是hInstance参数至关重要的原因。
使用从DllMain获得的HINSTANCE参数意味着该资源是DLL的一部分。
如果资源位于加载DLL的应用程序中,则可以将 NULL 作为LoadResource()的第一个参数传递,并且应用程序的资源将是搜索。
来自LoadResource的文档:
如果hModule为NULL,则系统加载 来自模块的资源 用于创建当前流程。
希望有所帮助。
-Scott
答案 1 :(得分:0)
错误0x716表示:
ERROR_RESOURCE_NAME_NOT_FOUND 1814 (0x716)
指定的资源名称不能 在图像文件中找到。
您是否将正确的第一个参数传递给LoadBitmap?
的hInstance
[in]处理可执行文件所针对的模块实例 包含要加载的位图。
资源文件是否正在编译为.res文件并包含在最终的可执行文件中?