2

私のプログラムは、ISSkin がインストールされているコンピューターに正常にインストールされます。次に、ISSkin がインストールされていない別のコンピューターにプログラムをインストールしようとしましたが、インストール時に次のメッセージが表示されます

ネットで検索しましたが、今のところ何もありません。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'

innosetup に *.cjstyles スキンを使用しています。STDCALL から CDECL に変更しましたが、役に立ちませんでした。誰かがこの問題を抱えていて、どうすれば解決できますか?

4

1 に答える 1

3

DLL を一時ファイルに抽出していますが、'c:\folder00\' からロードしようとしていますが、これはおそらくターゲット コンピューターには存在しません。

製品ページのに従えば問題ありません。リンクされた例の関連部分:

[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; 
于 2012-09-10T23:14:46.433 に答える