在Delphi XE2 Win32平台运行以下代码。 然而,如果以“EnumRCDataProc”的形式运行,在“EnumRCDataProc”平台上汇编的同一法典将造成出入违规:
procedure TForm2.Button1Click(Sender: TObject);
function EnumRCDataProc(hModule: THandle; lpszType, lpszName: PChar; lParam:
NativeInt): Boolean; stdcall;
begin
TStrings(lParam).Add(lpszName);
Result := True;
end;
var k: NativeInt;
L: TStringList;
H: THandle;
begin
H := LoadPackage( resource.bpl );
L := TStringList.Create;
try
EnumResourceNames(H, RT_RCDATA, @EnumRCDataProc, NativeInt(L));
ShowMessage(L.Text);
finally
L.Free;
UnloadPackage(H);
end;
end;
在对Delphi XE2 IDE在Win64平台上的代码进行脱节时,我发现EnumRCDataProc中的ule价值与H变量相吻合。 然而,我怎么说。 任何想法?