wjp 发表于 2021-8-3 22:08

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;
}

白云点缀的蓝 发表于 2021-8-3 22:50

换LoadImageW或者LoadImageA试试,头文件是winuser.h

wjp 发表于 2021-8-3 23:09

starry、星空 发表于 2021-8-3 22:50
换LoadImageW或者LoadImageA试试,头文件是winuser.h

不行啊 还是报1814{:6_221:}

白云点缀的蓝 发表于 2021-8-3 23:31

wjp 发表于 2021-8-3 23:09
不行啊 还是报1814

他这个LoadImage返回值为空,所以报错是肯定的,你第一个参数NULL换成IMAGE* pDstImg,
// 保存图像的 IMAGE 对象指针
这个指针用来保存IMAGE对象

白云点缀的蓝 发表于 2021-8-3 23:36

这些是函数原型,你可以参考一下,因为是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 的大小以适应图片
);

wjp 发表于 2021-8-5 00:38

额你这不是win32api吧 我这直接保报错{:6_218:}
我百度查到的原型是这样的
函数功能:该函数装载图标,光标,或位图。
函数原型:HANDLE LoadImage(
HINSTANCE hinst,
LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad

wjp 发表于 2021-8-5 00:47

人机验证什么鬼老是失败无法回复啊{:7_252:}

Naxsh 发表于 2022-2-21 23:32

谢谢分享

Ail9274 发表于 2022-2-25 05:01

谢谢分享

CBJ6245 发表于 2022-3-1 01:23

帮顶一下
页: [1] 2 3 4 5 6 7 8
查看完整版本: LoadImage在dll里面读取图片失败错误代码1814 怎么回事