var Proc : TCPlApplet; Info : TNewCplInfo; Mo : THandle; begin MO:=LoadLibrary('main.cpl'); @Proc := GetProcAddress(mo,'CPlApplet'); if @Proc<>nil then begin Proc(Handle,CPL_NEWINQUIRE,0,LongInt(@Info)); Image1.Picture.Icon.Handle:=Info.hIcon; Label1.caption:=Info.szName; Label2.caption:=Info.szInfo; end; FreeLibrary(Mo); end;上述代码取到的 Label1.caption:=Info.szName; Label2.caption:=Info.szInfo; 若是英文信息,正确,若是中文信息则 是乱码,为什么?
procedure TForm1.Button1Click(Sender: TObject);
var
Proc : TCPlApplet;
Info : TNewCplInfo;
Mo : THandle;
buf:pchar;
info2:cplinfo;
begin
getmem(buf,255);
MO:=LoadLibrary('Sysdm.cpl');
//showmessage(GetErrorMessage(255));
@Proc := GetProcAddress(mo,'CPlApplet');
if @Proc<>nil then
begin
proc(handle,CPL_INIT,0,0);
proc(handle,CPL_GETCOUNT,0,0);
proc(handle,CPL_INQUIRE,0,LongInt(@info2));
loadstring(mo,info2.idName,buf,255);
label3.Caption:=buf;
loadstring(mo,info2.idInfo,buf,255);
label4.Caption:=buf;
end;
freemem(buf);
FreeLibrary(Mo);
end;
Proc : TCPlApplet;
Info : TNewCplInfo;
Mo : THandle;
begin
MO:=LoadLibrary('main.cpl');
@Proc := GetProcAddress(mo,'CPlApplet');
if @Proc<>nil then
begin
Proc(Handle,CPL_NEWINQUIRE,0,LongInt(@Info));
Image1.Picture.Icon.Handle:=Info.hIcon;
Label1.caption:=Info.szName;
Label2.caption:=Info.szInfo;
end;
FreeLibrary(Mo);
end;上述代码取到的 Label1.caption:=Info.szName;
Label2.caption:=Info.szInfo;
若是英文信息,正确,若是中文信息则
是乱码,为什么?