修改资源字符串

 


 

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;

 


 

posted @ 2017-07-02 18:46  血翼魔  阅读(247)  评论(0编辑  收藏  举报