运行时错误(在-1:0):无法使用InnoSetup导入ISSkin.dll

时间:2012-09-10 22:50:18

标签: inno-setup failed-installation

我的程序在安装了ISSkin的计算机上安装得很好。我尝试在没有安装ISSkin的另一台计算机上安装我的程序,并在安装时收到此消息:“运行时错误(在-1:0):无法导入DLL:c:\ Folder00 \ ISSkin。 DLL”。

我在网上搜索但到目前为止没什么。我的INNO中有以下代码:

[Files]
Source: "c:\Folder00\ISSkin.dll"; DestDir: {tmp}; Flags: dontcopy; Attribs: hidden system

[Code] 
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@c:\Folder00\ISSkin.dll cdecl';

procedure UnloadSkin();
external 'UnloadSkin@c:\Folder00\ISSkin.dll cdecl'

我正在使用* .cjstyles皮肤作为innosetup。我从STDCALL改为CDECL,但无济于事。有没有人遇到过这个问题以及如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您正在将dll解压缩为临时文件,但是尝试从某些'c:\ folder00 \'加载它,这很可能在目标计算机中不存在。

按照产品页面上的example进行操作即可。链接示例中的相关部分:

[Files]
Source: ISSkin.dll; DestDir: {app}; Flags: dontcopy
Source: Office2007.cjstyles; DestDir: {tmp}; Flags: dontcopy    

[Code] 
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('Office2007.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), '');
  Result := True;
end;