LoadImage在dll里面读取图片失败错误代码1814 怎么回事
BOOL WindowImg(char* str){
printf("%s\n", str);
HANDLE hbm;//位图句柄
BITMAP bminfo;//位图实例句柄
//加载位图
hbm = LoadImage(NULL, (LPCWSTR)str, IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_CREATEDIBSECTION);
if (NULL == hbm)
{
printf("加载位图失败%d",GetLastError());
return false;
}
//获取指定图像信息
GetObject(hbm, sizeof(bminfo), &bminfo);
HDC hdc = GetDC(hwnd);//获取窗口dc
HDC memdc = CreateCompatibleDC(hdc);//创建兼容dc
//位图句柄与dc关联
SelectObject(memdc, hbm);
//贴图
BitBlt(hdc, 0, 0, bminfo.bmWidth, bminfo.bmHeight, memdc, 0, 0, SRCCOPY);
//关闭dc
DeleteDC(memdc);
ReleaseDC(hwnd, hdc);
return true;
}
换LoadImageW或者LoadImageA试试,头文件是winuser.h starry、星空 发表于 2021-8-3 22:50
换LoadImageW或者LoadImageA试试,头文件是winuser.h
不行啊 还是报1814{:6_221:} wjp 发表于 2021-8-3 23:09
不行啊 还是报1814
他这个LoadImage返回值为空,所以报错是肯定的,你第一个参数NULL换成IMAGE* pDstImg,
// 保存图像的 IMAGE 对象指针
这个指针用来保存IMAGE对象 这些是函数原型,你可以参考一下,因为是void,所以不需要拿变量来接,
// 从图片文件获取图像
void loadimage(
IMAGE* pDstImg, // 保存图像的 IMAGE 对象指针
LPCTSTR pImgFile, // 图片文件名
int nWidth = 0, // 图片的拉伸宽度
int nHeight = 0, // 图片的拉伸高度
bool bResize = false // 是否调整 IMAGE 的大小以适应图片
);
// 从资源文件获取图像
void loadimage(
IMAGE* pDstImg, // 保存图像的 IMAGE 对象指针
LPCTSTR pResType, // 资源类型
LPCTSTR pResName, // 资源名称
int nWidth = 0, // 图片的拉伸宽度
int nHeight = 0, // 图片的拉伸高度
bool bResize = false // 是否调整 IMAGE 的大小以适应图片
); 额你这不是win32api吧 我这直接保报错{:6_218:}
我百度查到的原型是这样的
函数功能:该函数装载图标,光标,或位图。
函数原型:HANDLE LoadImage(
HINSTANCE hinst,
LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad
人机验证什么鬼老是失败无法回复啊{:7_252:} 谢谢分享 谢谢分享 帮顶一下