修改资源字符串
Demo下载:https://git.oschina.net/xieyimo9/xiugaiziyuanzifuchuan.git
- 主要代码:
-
procedure SetResourceString(OldValue, NewValue: PResStringRec); var OldProtect: DWORD; begin { 通过 VirtualProtect 修改指定数据所在区域的内存属性为可读写,该区域原来的属性保存在 OldProtect 中 } VirtualProtect(OldValue, SizeOf(PResStringRec), PAGE_EXECUTE_WRITECOPY, @OldProtect); { 赋值新值 } PResStringRec(OldValue)^ := PResStringRec(NewValue)^; { 恢复原内存区域内的属性 } VirtualProtect(OldValue, SizeOf(PResStringRec), OldProtect, @OldProtect); end;
- 调用例子:
-
procedure testShow; begin ShowMessage(SMsgDlgOK); end; procedure testChange; resourcestring test = '改变了木有'; begin testShow; SetResourceString(@SMsgDlgOK, @test); testShow; end;