搜索
查看: 604|回复: 10
打印 上一主题 下一主题

此帖已删

[复制链接]
跳转到指定楼层
楼主
发表于 2017-7-19 10:31:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tc_初学C 于 2018-4-30 18:33 编辑

此帖已删












推荐
 楼主| 发表于 2017-7-22 19:18:49 | 只看该作者
4399APPLE 发表于 2017-7-19 11:26
图片应该要是BMP格式……

话说你知道是什么问题了吗?我到现在还没查出。
沙发
 楼主| 发表于 2017-7-19 10:40:20 | 只看该作者
本帖最后由 初学C 于 2017-7-19 10:46 编辑

[mw_shl_code=c,true]int PutImage(HDC DC, char *ImagePath,int w,int h)
{   
    HANDLE FHD = 0;
    unsigned long dwFileSize = 0;
    HGLOBAL ImageMemary = 0;
    LPVOID MemaryLock = 0;
    unsigned long ActualSize = 0;
    IPicture *ppic = 0;        
    IStream *pstm = 0;     
    OLE_XSIZE_HIMETRIC hmWidth = 0;  
    OLE_YSIZE_HIMETRIC hmHeight = 0;
    GUID const IID_IPicture2 = {0};
    DWORD res = 0;
    FHD = CreateFile (ImagePath, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
    if(FHD == 0)
    {
       return GetLastError();   
    }
    dwFileSize = GetFileSize ( FHD, NULL );
    if(dwFileSize == 0)
    {
        res = GetLastError();
        CloseHandle ( FHD );
        return res;   
    }
    ImageMemary = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
    if(ImageMemary == 0)
    {   
       res = GetLastError();
       CloseHandle ( FHD );
       return res;   
    }
    MemaryLock = GlobalLock ( ImageMemary );
    if(MemaryLock == 0)
    {
       res = GetLastError();
       CloseHandle ( FHD );
       GlobalFree(ImageMemary);
       return res;   
    }
    if(0 == ReadFile ( FHD, MemaryLock, dwFileSize, &ActualSize, NULL) )
    {
       res = GetLastError();
       CloseHandle ( FHD );
       GlobalFree(ImageMemary);
       return res;
    }
    if(S_OK != CreateStreamOnHGlobal (ImageMemary, 0, &pstm) )
    {
        res = GetLastError();
        CloseHandle ( FHD );
        GlobalFree(ImageMemary);
        return res;     
    }
    res = OleLoadPicture(pstm,dwFileSize,1,&IID_IPicture2,(LPVOID*)&ppic);//一直在这一句出错
    if(res == E_POINTER)
    {
        CloseHandle ( FHD );
        GlobalFree(ImageMemary);
        return E_POINTER;   
    }
    if(res == E_NOINTERFACE)
    {
        CloseHandle ( FHD );
        GlobalFree(ImageMemary);
        return E_NOINTERFACE;   
    }
    if(ppic == 0)
    {
       res = GetLastError();
       CloseHandle ( FHD );
       GlobalFree(ImageMemary);
       return res;   
    }
    ppic->lpVtbl->get_Width(ppic, &hmWidth);
    ppic->lpVtbl->get_Height(ppic, &hmHeight);
    ppic->lpVtbl->Render(ppic,DC,0,0,w,h,0,hmHeight,hmWidth,-hmHeight,NULL);
    GlobalUnlock ( ImageMemary );
    CloseHandle ( FHD );
    GlobalFree(ImageMemary);
    return 1;
} [/mw_shl_code]
板凳
发表于 2017-7-19 11:26:29 | 只看该作者
图片应该要是BMP格式……
地板
 楼主| 发表于 2017-7-19 12:51:11 | 只看该作者
4399APPLE 发表于 2017-7-19 11:26
图片应该要是BMP格式……

可是BMP格式也不行. 返回值说是不支持指定对象

点评

稍等一下我 我去刷题dp  发表于 2017-7-19 12:57
5#
发表于 2017-7-21 02:26:06 | 只看该作者
actually no one
94公斤是什么概念?
6#
发表于 2017-7-22 15:01:47 | 只看该作者
zhuzhu81998 发表于 2017-7-21 02:26
actually no one
94公斤是什么概念?

哈哈,118斤,我才一百斤
7#
 楼主| 发表于 2017-7-22 15:57:25 | 只看该作者
muchmuch 发表于 2017-7-22 15:01
哈哈,118斤,我才一百斤

是188斤                        
9#
 楼主| 发表于 2017-7-22 22:33:19 | 只看该作者
这问题难道没人知道吗?                                      
10#
发表于 2017-8-12 17:58:41 | 只看该作者

你厉害                          
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表