2

psvince.dllライブラリを統合して、インストールおよびアンインストール時に実行中のアプリケーションを検出するのに苦労しています。問題は、キーワードへのパスにexternal、全体を分割する空白が含まれていることです。コードは次のとおりです。

#define INSTALL_PATH "{pf}\My Plugin"

[Files]
Source: psvince.dll; flags: dontcopy
Source: psvince.dll; DestDir: "{#INSTALL_PATH}"

[Code]
function IsModuleLoadedU(modulename: String ):  Boolean;
external 'IsModuleLoaded@{#INSTALL_PATH}\psvince.dll stdcall uninstallonly' ;

コードでInvalid Externalエラーが発生します。

このINSTALL_PATHマクロは、ターゲット アプリのインストール ディレクトリを指定するために使用されるため、ユーザーはそれを指定する必要がありません。また、他のステートメントでも使用しています。

マクロが使用されているポイントを引用して、文字列を で結合された複数の文字列に分割しようとしましたが、+役に立ちませんでした。

psvinceコード全体はこちらから入手できます。

4

1 に答える 1

1

{app}パスをハードコーディングする代わりに使用します。

経由でデフォルト パスを提供し、DefaultDirName必要に応じてユーザーがこれを変更できないようにすることもできDisableDirPageますが、常に適切なものに設定{app}してインストーラ全体で使用する必要があります。そうしないと、問題が発生します。

于 2013-09-17T03:15:47.197 に答える