SHLoadImageFile函数

雾海飘香   2008-5-29 11:52 楼主
我想打开png图片,上网查到要用SHLoadImageFile函数可以,但是使用SHLoadImageFile函数需要aygshell.lib,我在网上找不到aygshell.lib,却下载了AYGSHELL.DLL,可是光有AYGSHELL.DLL却不知道应该怎么用它。
希望高人指点一下怎么用AYGSHELL.DLL来使用SHLoadImageFile函数,或者哪位高人有aygshell.lib能发给我?(lijunminjay@hotmail.com)非常感谢

回复评论 (30)

你系统不支持,就不能用,windows mobile才能用。
点赞  2008-5-29 12:15
使用
loadlibrary
GetProcAddress
freelibrary
点赞  2008-5-29 12:15
我虽然有AYGSHELL.DLL,但是不知道接口,所以不能确定应该怎么使用AYGSHELL.DLL。只能自己试着写:
            CBitmap bitmap;
           bitmap = NULL;
           HINSTANCE hInst;
           hInst = LoadLibrary(_T("AYGSHELL.DLL"));
           typedef HDC (*ADDPROC) (CString);
           ADDPROC LoadImage = (ADDPROC)GetProcAddress(hInst,_T("SHLoadImageFile"));

           bitmap.Attach(LoadImage(_T("C\\Maps\\Icon.png")));

            BITMAP bmpInfo;

       bitmap.GetBitmap(&bmpInfo);
       CDC bitmapDC;

           CDC *pDC;
           pDC = ((CStatic*)GetDlgItem(IDC_STATIC_BK))->GetDC();
           bitmapDC.CreateCompatibleDC(pDC);

       //bitmapDC.CreateCompatibleDC(&dc);
       CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap);
       pDC->BitBlt(20, 20, bmpInfo.bmWidth, bmpInfo.bmHeight, &bitmapDC, 0, 0, SRCCOPY);
       bitmapDC.SelectObject(pOldBitmap);
       bitmap.DeleteObject();
但是没有显示出Icon.png,希望会用AYGSHELL.DLL的高手指点一下,或者有aygshell.lib能发给我那就最好了,我只要直接调用SHLoadImageFile函数就可以了。谢谢大家!
点赞  2008-5-29 13:34
那谁有aygshell.lib吗? 谢谢!!!
点赞  2008-5-30 21:40
装个platform builder for wince 就什么都有了。

网上找找吧。
点赞  2008-6-2 09:35
虽然在ppc的帮助文档中的
SHLoadImageFile说明中指出wince中可以支持。
如下:
Requirements
Pocket PC: Windows Mobile 2003 and later.
OS Versions: Windows CE .NET 4.0 and later.
Header: Declared in Aygshell.h.
Library: Use Aygshell.lib.


但是,我从wince 5.0build出来的os中的aygshell.dll中没有找到

这个函数。

在wince5.0的帮助文档也没有找到其定义。

估计没有支持的。
点赞  2008-6-2 09:50
Requirements
OS Versions: Windows CE 1.0 and later.
Header: Shellapi.h.
Link Library: Coredll.lib.
点赞  2008-6-2 13:47
不好意思,弄错了。
点赞  2008-6-2 13:49
原文是:
Pocket PC: Windows Mobile 2003 and later.
OS Versions: Windows CE .NET 4.0 and later.
Header: Declared in Aygshell.h.
Library: Use Aygshell.lib.
我现在在VisualStudio下面(“F:\Microsoft Visual Studio 8\SmartDevices\SDK\PocketPC2003\Lib\armv4”)找到了aygshell.lib,并将它复制到我的工程目录下以后,在我的程序里添加#pragma comment (lib,"aygshell.lib")编译后,还是出现error C2065: 'SHLoadImageFile' : undeclared identifier的问题。
点赞  2008-6-2 14:01
#include

Aygshell.h中保证有该api的声明。
点赞  2008-6-2 14:20
难道我aygshell.lib用错了?不应该#pragma comment (lib,"aygshell.lib")这样用?还是除了添加#pragma comment (lib,"aygshell.lib")语句外还需要在哪里修改代码?
点赞  2008-6-2 14:50
你总得include上头文件吧。
点赞  2008-6-2 17:48
我加上#include 后显示:Cannot open include file: 'Aygshell.h': No such file or directory
我加上#include "Aygshell.h" 后显示: fatal error C1083: Cannot open include file: 'winuserm.h': No such file or directory
然后我把'winuserm.h复制到我项目下面,并把#include 改成#include "winuserm.h"编译后则显示:
error C2061: syntax error : identifier 'SIPSTATE'
error C2061: syntax error : identifier 'IShellPropSheetExt'
唉!伤脑筋!
点赞  2008-6-2 18:55
有哪位大侠以前用过SHLoadImageFile函数的,请指点一下,谢谢!!!
点赞  2008-6-3 10:54
麻烦你说一下你用的什么系统?
要是ce系统就想别的办法吧。
微软不支持,你也没有办法。

好像ce6下有对png的支持,但是我还没看过呢。
点赞  2008-6-3 16:55
都说了,你不能用SHLoadImageFile,你为什么还要浪费时间呢.
点赞  2008-6-3 17:16
sorry,我没有看懂,是不是在CE上不能用SHLoadImageFile函数?
点赞  2008-6-3 17:52
是啊,都说过了ce5上不支持这个。

你用www.google.com搜一下看看老外有没有办法了。
点赞  2008-6-3 18:28
非要用png?可以用其它格式的图片代替啊
点赞  2008-6-3 18:29
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复