关于 DLL 不能加载的问题,我不能回答你,因为不知道你具体的文件。
关于显示 MAC 地址乱码的问题,估计你使用的 INNO 是 Unicode 版本的原因,而我给的示例代码是给 ANSI 版本的。在 Unicode 版本的 INNO 下编译,你试试下面的代码看看:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
[Files]
Source: "ISID.dll"; Flags: dontcopy
[Code]
function GetMACAddress(output: AnsiString): Integer;
external 'GetMACAddress@files:ISID.dll stdcall';
function GetMacAdd: AnsiString;
var
ClassName: AnsiString;
Ret: Integer;
begin
SetLength(ClassName, 256);
Ret := GetMacAddress(PAnsiChar(ClassName));
Result := Copy(ClassName, 1 , Ret);
end;
procedure InitializeWizard();
var
labMacAdd: TLabel;
begin
WizardForm.WelcomeLabel2.Height := ScaleY(200);
labMacAdd := TLabel.Create(WizardForm);
with labMacAdd do
begin
Parent := WizardForm.WelcomePage;
Caption := 'MAC 地址: ' + GetMacAdd;
Transparent := False;
Left := ScaleX(174);
Top := ScaleY(280);
Width := ScaleX(120);
Height := ScaleY(12);
end;
end;