Я написал библиотеку классов с использованием Visual Studio 2010 C # для чтения информации об оборудовании компьютера (например, HDD / SSD). Я буду использовать эту dll для создания установщика с помощью InnoSetup для чтения информации об оборудовании целевого компьютера. Теперь моя проблема заключается в том, что .NET dll нельзя использовать напрямую, если она еще не зарегистрирована. Я пытаюсь найти способ зарегистрировать dll во время InitializeSetup в InnoSetup, чтобы я мог использовать функции в dll. Вот сценарий, который я написал для установщика.
function InitializeSetup(): Boolean;
var
obj: Variant;
diskPartitions: Integer;
va: String;
ErrorCode: Integer;
b: Boolean;
begin
ExtractTemporaryFile('SSHardwareChecker.dll');
RegisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
obj := CreateOleObject('SSHardwareChecker.SSClass');
va := obj.GetDiskDriveInformation;
MsgBox(va, mbInformation, mb_Ok);
b:=UnregisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
end;
Функция RegisterServer
, похоже, не работает. Выдает ошибку, в которой говорится, что RegSvr32 завершился неудачно с кодом выхода 0x4
. Я прочитал много статей в сети, в которых говорится, что .net dll должна быть зарегистрирована с помощью regasm. Я действительно не знаю, как это сделать, особенно в Inno Setup.
Пожалуйста, помогите, ребята.