Reputation: 101
I'm trying to add VCL styles (Inno Setup 5.5.6 (a)) for my installer. Style load correctly during the installation, but when I try to uninstall I get an error
Runtime Error(at-1:0): Cannot Import dll:VclStylesInno.dll.
And I can not uninstall my program.
Does anyone know what I can do?
Thanks for the help
#define VCLStylesSkinPath "{localappdata}\VCLStylesSkin"
[Files]
;Install
Source: "VclStylesinno.dll"; DestDir: "{app}"; Flags: dontcopy
Source: "Styles\Auric.vsf"; DestDir: "{app}"; Flags: dontcopy
;Uninstall
Source: "VclStylesinno.dll"; DestDir: "{#VCLStylesSkinPath}"; \
Flags: uninsneveruninstall
Source: "Styles\Auric.vsf"; DestDir: "{#VCLStylesSkinPath}"; \
Flags: uninsneveruninstall
[Code]
{ Import the LoadVCLStyle function from VclStylesInno.DLL }
procedure LoadVCLStyle(VClStyleFile: String);
external 'LoadVCLStyleA@files:VclStylesInno.dll stdcall setuponly';
procedure LoadVCLStyle_UnInstall(VClStyleFile: String);
external '[email protected] stdcall uninstallonly';
{ Import the UnLoadVCLStyles function from VclStylesInno.DLL }
procedure UnLoadVCLStyles;
external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall setuponly';
procedure UnLoadVCLStyles_UnInstall;
external '[email protected] stdcall uninstallonly';
function InitializeUninstall: Boolean;
begin
Result := True;
LoadVCLStyle_UnInstall(ExpandConstant('Styles\Auric.vsf'));
end;
procedure DeinitializeUninstall();
begin
UnLoadVCLStyles_UnInstall;
end;
Upvotes: 2
Views: 773
Reputation: 202504
You are not specifying a path to the uninstall copy of the VclStylesInno.dll
.
This is the correct way:
procedure LoadVCLStyle_UnInstall(VClStyleFile: String);
external 'LoadVCLStyleA@{#VCLStylesSkinPath}\VclStylesInno.dll stdcall uninstallonly';
Next time, just follow the official instructions for uninstalling the VCL Styles for Inno Setup.
For more details and maybe even a better solution than the official one, see also Load external DLL for uninstall process in Inno Setup.
Upvotes: 2