UpdateResource换个图标,如何多出个“语言中性,中文(中国)”来
UpdateResource换个图标,怎么多出个“语言中性,中文(中国)”来?
用eXeScope打开看原来的是:
资源
图标
MAINICON
1: 32*32,16色 对应DELPHI默认图标
换完后变成:
资源
图标
MAINICON
1: 32*32,16色 显示语言中性 中文(中国)
语言中性 对应换了后的图标
中文(中国) 对应DELPHI默认图标
真是见了鬼了。但是确实是换了,可以显示新图标。代码如下:
因为DELPHI的TICON类有问题,同样的代码老是着色失真,所以用VC写的换图标的程序(DELPHI版的换了也是上面的情况,只是图标着色失真)
int TestC(char SFileName[],char DFileName[])
{
HINSTANCE hInstance=LoadLibrary(SFileName);//载入图标源文件
DWORD maxSize=0;
HRSRC hRsrc =NULL;
DWORD resourcelen=0;
int idx=1;
int maxidx=1;
LPVOID lpRes =0;
HANDLE hUpdateRes =0;
while(true)
{//讀取最大的圖片
hRsrc=FindResource(hInstance,(LPCSTR)idx,(LPCSTR)RT_ICON); //查找源文件中的图标文件
resourcelen=SizeofResource(hInstance,hRsrc);
if(resourcelen<=0)
{
break;
}
if(resourcelen>maxSize)
{
maxSize=resourcelen;
maxidx=idx;
}
idx++;
}
hRsrc=FindResource(hInstance,(LPCSTR)maxidx,(LPCSTR)RT_ICON); //查找源文件中的图标文件
resourcelen=SizeofResource(hInstance,hRsrc);
lpRes =LockResource(LoadResource(hInstance,hRsrc)); //锁定资源
if (!lpRes)
{
return 0;
}
hUpdateRes = BeginUpdateResource(DFileName, FALSE); //更新dd2文件图标为dd的
if(!hUpdateRes)
{
return 0;
}
//更新图标资源
if(!UpdateResource(hUpdateRes,(LPCSTR)RT_ICON, (LPCSTR)1,0,lpRes,resourcelen))
{
return 0;
}
//结束更新资源
if(!EndUpdateResource(hUpdateRes,FALSE))
{
return 0;
}
FreeResource(hRsrc); //关闭句柄
FreeResource(hUpdateRes);//关闭句柄
//释放载入的源文件
if(!FreeLibrary(hInstance))
{
return 0;
}
return 1;
}
------解决方案--------------------
不懂
回复内容 回复内容太短了!
用eXeScope打开看原来的是:
资源
图标
MAINICON
1: 32*32,16色 对应DELPHI默认图标
换完后变成:
资源
图标
MAINICON
1: 32*32,16色 显示语言中性 中文(中国)
语言中性 对应换了后的图标
中文(中国) 对应DELPHI默认图标
真是见了鬼了。但是确实是换了,可以显示新图标。代码如下:
因为DELPHI的TICON类有问题,同样的代码老是着色失真,所以用VC写的换图标的程序(DELPHI版的换了也是上面的情况,只是图标着色失真)
int TestC(char SFileName[],char DFileName[])
{
HINSTANCE hInstance=LoadLibrary(SFileName);//载入图标源文件
DWORD maxSize=0;
HRSRC hRsrc =NULL;
DWORD resourcelen=0;
int idx=1;
int maxidx=1;
LPVOID lpRes =0;
HANDLE hUpdateRes =0;
while(true)
{//讀取最大的圖片
hRsrc=FindResource(hInstance,(LPCSTR)idx,(LPCSTR)RT_ICON); //查找源文件中的图标文件
resourcelen=SizeofResource(hInstance,hRsrc);
if(resourcelen<=0)
{
break;
}
if(resourcelen>maxSize)
{
maxSize=resourcelen;
maxidx=idx;
}
idx++;
}
hRsrc=FindResource(hInstance,(LPCSTR)maxidx,(LPCSTR)RT_ICON); //查找源文件中的图标文件
resourcelen=SizeofResource(hInstance,hRsrc);
lpRes =LockResource(LoadResource(hInstance,hRsrc)); //锁定资源
if (!lpRes)
{
return 0;
}
hUpdateRes = BeginUpdateResource(DFileName, FALSE); //更新dd2文件图标为dd的
if(!hUpdateRes)
{
return 0;
}
//更新图标资源
if(!UpdateResource(hUpdateRes,(LPCSTR)RT_ICON, (LPCSTR)1,0,lpRes,resourcelen))
{
return 0;
}
//结束更新资源
if(!EndUpdateResource(hUpdateRes,FALSE))
{
return 0;
}
FreeResource(hRsrc); //关闭句柄
FreeResource(hUpdateRes);//关闭句柄
//释放载入的源文件
if(!FreeLibrary(hInstance))
{
return 0;
}
return 1;
}
------解决方案--------------------
不懂
回复内容 回复内容太短了!