VC++如何实现文件图标变更?
下面是网上抄的代码,不管用。请高人指点,能实现类似的功能。
#include "stdafx.h"#define _AFXDLL#include <afxwin.h>int _tmain(int argc, _TCHAR* argv[]){ HGLOBAL hResLoad(NULL); HANDLE hExe(NULL); HRSRC hRes(NULL); HANDLE hUpdateRes(NULL); char * lpResLock; BOOL result; hExe = LoadLibrary(_TEXT("D:\\Src.exe")); if (hExe == NULL) { AfxMessageBox(_T("加载Src.exe失败."),0,0); } hRes = FindResource((HMODULE)hExe, (LPCTSTR)1, RT_ICON); if (hRes == NULL) { AfxMessageBox(_T("不能定位Src.exe中的第一个图标")); } hResLoad = LoadResource((HMODULE)hExe, hRes); if (hResLoad == NULL) { AfxMessageBox(_T("不能加载该图标资源")); } lpResLock =(char *)LockResource(hResLoad); if (lpResLock == NULL) { AfxMessageBox(_T("不能锁定该资源.")); } hUpdateRes = BeginUpdateResource(_T("D:\\Target.exe"), FALSE); if (hUpdateRes == NULL) { AfxMessageBox(_T("不能打开Target.exe准备写.")); } result =UpdateResource((HMODULE)hUpdateRes , RT_ICON, (LPCTSTR)1, 0, lpResLock, SizeofResource((HMODULE)hExe, hRes)); if (result == FALSE) { AfxMessageBox(_T("添加资源失败.")); } if (!EndUpdateResource(hUpdateRes, FALSE)) { AfxMessageBox(_T("不能向目标EXE中写入改动结束资源更新")); } if (!FreeLibrary((HMODULE)hExe)) { AfxMessageBox(_T("不能释放Src的句柄.")); } return 0;}