我的程序在安装了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,但无济于事。有没有人遇到过这个问题以及如何解决这个问题?
答案 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;