我使用以下代码创建了一个VS2010 C ++空解决方案:
#include "conmat.h"
#include "resource.h"
#include <iostream>
#include <afxwin.h>
#include <atlimage.h>
void main(){
CImage bmp;
bmp.LoadFromResource(AfxGetInstanceHandle(),RES_BMP);
std::cout << GetLastError() << std::endl;
system("pause");
}
我添加了一个BMP文件作为资源。为什么不起作用?
这里是conmat.rc文件,必须包含(在我看来)在paint
中创建的位图图片// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Русский (Россия) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
RES_BMP BITMAP "in.bmp"
#endif // Русский (Россия) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
答案 0 :(得分:0)
尝试使用GetModuleHandle(NULL)
代替AfxGetInstanceHandle()
。