请问vb 修改资源文件(即修改字符串表的内容)

VB6.0中有LoadResString方法,却没有对应修改的方法,请教朋友给个思路。问问可不可用StringTable在Dll运行状态存储少量数据(即动态修改Strin... VB6.0中有LoadResString方法,却没有对应修改的方法,请教朋友给个思路。
问问可不可用String Table在Dll运行状态存储少量数据(即动态修改String Table,是打包发布后,不是开发阶段)。

VB6.0开发的Dll中修改String Table,是在做简单的注册机模块,比如不想将少量的信息写到ini等文件中;
展开
 我来答
5iVB6
2013-04-03 · 超过15用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:32.9万
展开全部
只要是标准DLL或EXE,可以使用String Table动态存储数据。
修改思路大致是:1、载入EXE/DLL资源文件;2、计算指定编号字符串的所在组,查找该组字符串表资源;3、读入指定字符串表资源,锁定保护,求得资源大小;4、根据资源长度确定新建/修改字符串数据,新建时按结构建造空内容的字节数组;5、计算字符串实际大小和指针,将修改内容写入动态数组;6、释放EXE/DLL资源文件;7、更新EXE/DLL资源文件,使用API函数BeginUpdateResource \ UpdateResource \ EndUpdateResource;8、根据反馈结果判定修改是否成功。
这里面的难点可能是,在内存中处理数据,就是API函数CopyMemory的使用,注意记录位置和长度的处理。字节数组长度设定可以按一下计算:原始资源总长-(此前长度+指定编号长度单元+指定编号资源原始长度)。
还有,VB6与API中的LoadResString函数是不同的。
用字符串表做简单的注册机,应该够用了。

好几年没玩VB,希望上面的解释可以帮到你。这个模块我以前做过,如果能找到,发给你代码吧。
百度网友bdb9803
2013-04-03 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部
资源的内容是只读的,是程序员事先安排好的,如果要改变,读入变量之后再改变
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2013-04-03 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2711万
展开全部
如果VB资源编辑器没有被加载,请单击"外接程序",选取"外接管理器"启动外接管理器,然后选中"VB6
资源编辑器",在左下方的"加载行为"中的"加载/卸载"前打钩,点击"确定"退出外接管理器。此时,可以在工具条中看到资源编辑器的绿色图标,单击它就可以启动VB资源编辑器了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2013-04-03 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5553万
展开全部
少量数据的话建议存储到注册表,注册表的操作很简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式