多字符串表到DLL中的单个字符串表 [英] Multi stringtable to single stringtable in DLL

查看:80
本文介绍了多字符串表到DLL中的单个字符串表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的目的是将my.dll(语言是chs(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED)))更改为cht(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL)。所以我使用UpdateResource更改my.dll中的字符串表。



但是我有两个字符串,一个chs,它是空的;一个cht,表现得很好。



我不喜欢知道如何删除chs stringtable,任何建议都很感激。



我尝试过:

< br $>

My purpose is to change my.dll(language is chs(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED))) to cht(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL)。 So I use UpdateResource to change stringtable in my.dll。

But i got two stringtable,one chs,which is empty;one cht,behaves well。

I don't know how to delete chs stringtable,any advice is grateful。

What I have tried:

part code:


BYTE* lpResData = (BYTE*)LockResource(hStringtableRes);

INT nResSize = SizeofResource(hDLL, hRes);

ChangeResLanguage(lpResData, nResSize);

UpdateResource(hUpdateRes, RT_STRING, lpName, CHS, NULL, 0);

UpdateResource(hUpdateRes, RT_STRING, lpName, CHT, lpResData, nResSize);


推荐答案

最好的解决方案是使用不同的dll并加载使用LoadLibrary的文件。文件中的修补是有问题的,当权利不可用或者反病毒软件可能会将其视为攻击时,可能会导致问题。
The best solution is to use different dll and load them with LoadLibrary. Patching in files is problematic and can lead to trouble when the rights arent available or anti-virus software may detect that as attack.


这篇关于多字符串表到DLL中的单个字符串表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆