我将一些字符串资源放在DLL中,从中取出已经没问题了,可是我还需要对字符串的内容进行修改,这可怎么办呢?请高手帮助,谢谢!附:DLL中字符串资源的格式#define IDS_STRING1 1
#define IDS_STRING2 2
#define IDS_STRING3 3
STRINGTABLE
{
IDS_STRING1, "abcdefg"
IDS_STRING2, "ddddd"
IDS_STRING3, "ggghhhh"
}
#define IDS_STRING2 2
#define IDS_STRING3 3
STRINGTABLE
{
IDS_STRING1, "abcdefg"
IDS_STRING2, "ddddd"
IDS_STRING3, "ggghhhh"
}
1.用二进制流的方式来把DLL读入内存
2.然后改写对应字符串在内存中对应位置的值.(要清楚字符串在DLL内存
中的位置或偏移量, 一般都有特定的存放位置)
3.改写完后, 保存二进制流.
#define IDS_STRING2 2
#define IDS_STRING3 3
STRINGTABLE
{
IDS_STRING1, "abcdefg"
IDS_STRING2, "ddddd"
IDS_STRING3, "ggghhhh"
}
同意
关键字 图标,SHELL32.DLL
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,shellapi,Dialogs; type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
DesktopIcon: TimageList; // 做一个你喜欢的图象列表
implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject);
Var Ico: TIcon;
Sfi: Tshfileinfo;
I : Integer;
begin //分配一个句柄给图象列表 DesktopIcon:= TImageList.Create(Self);
DesktopIcon.Handle := SHGetFileInfo('', 0, sfi, SizeOf(TSHFileInfo),
shGFI_SYSICONINDEX or SHGFI_SMALLICON);
DesktopIcon.ShareImages := TRUE;
For I:=0 to DesktopIcon.count -1 do
Begin
Ico := Ticon.Create;
DesktopIcon.GetIcon(I,Ico);
Ico.SaveToFile('c:\icons\'+inttostr(i)+'.ico');
Ico.Free;
End; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Desktopicon.free;
end; end.