本文介绍了多字符串表到DLL中的单个字符串表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我的目的是将my.dll(语言是chs(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED)))更改为cht(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL)。所以我使用UpdateResource更改my.dll中的字符串表。 但是我有两个字符串,一个chs,它是空的;一个cht,表现得很好。 我不喜欢知道如何删除chs stringtable,任何建议都很感激。 我尝试过: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中的单个字符串表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-22 21:31