我想打开png图片,上网查到要用SHLoadImageFile函数可以,但是使用SHLoadImageFile函数需要aygshell.lib,我在网上找不到aygshell.lib,却下载了AYGSHELL.DLL,可是光有AYGSHELL.DLL却不知道应该怎么用它。
希望高人指点一下怎么用AYGSHELL.DLL来使用SHLoadImageFile函数,或者哪位高人有aygshell.lib能发给我?(lijunminjay@hotmail.com)非常感谢
你系统不支持,就不能用,windows mobile才能用。
使用
loadlibrary
GetProcAddress
freelibrary
我虽然有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函数就可以了。谢谢大家!
装个platform builder for wince 就什么都有了。
网上找找吧。
虽然在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的帮助文档也没有找到其定义。
估计没有支持的。
Requirements
OS Versions: Windows CE 1.0 and later.
Header: Shellapi.h.
Link Library: Coredll.lib.
原文是:
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的问题。
#include
Aygshell.h中保证有该api的声明。
难道我aygshell.lib用错了?不应该#pragma comment (lib,"aygshell.lib")这样用?还是除了添加#pragma comment (lib,"aygshell.lib")语句外还需要在哪里修改代码?
我加上#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'
唉!伤脑筋!
有哪位大侠以前用过SHLoadImageFile函数的,请指点一下,谢谢!!!
麻烦你说一下你用的什么系统?
要是ce系统就想别的办法吧。
微软不支持,你也没有办法。
好像ce6下有对png的支持,但是我还没看过呢。
都说了,你不能用SHLoadImageFile,你为什么还要浪费时间呢.
sorry,我没有看懂,是不是在CE上不能用SHLoadImageFile函数?
是啊,都说过了ce5上不支持这个。
你用www.google.com搜一下看看老外有没有办法了。