私は古いinstallshieldアプリケーションをリファクタリングしています。カスタムDLLから関数を呼び出すアクションを実行する必要があります。残念ながら、このアクションが実行する関数は、別のカスタムdllに依存します。だから私の質問は: "カスタムdllを別のカスタムdllに依存させることは可能でしょうか?InstallShieldは別のカスタムDLLのカスタムDLLを使用します
インストーラを実行しようとすると、「セットアップが完了する前に中断されました...」というエラーが発生してクラッシュします。次に、2番目のカスタムdllをPATHに追加したフォルダにコピーしました。もちろん、私は顧客がそれを手で行うことは期待できません。
私はInstallshield 2008を使用していますが、私の質問に対する答えはすべてのバージョンで同じになると思います。
EDITは: のは、私が機能を持っているA.DLLあるとしましょう::
UINT __stdcall
PerformAction(MSIHANDLE hInstall) // IN
{
...
help();
...
}
ヘルプ()B.DLLで定義されているのように多分私の質問は、十分な私は例を与える明確ではありません。今私は新しいアクションを作成するときにdllをa.dllに設定し、機能名はPerformActionに設定しますが、b.dllに依存することを示す方法はありません PATHに含まれるフォルダにb.dllをコピーするとインストーラはうまくいきますが、もしそうでなければ失敗します。
SUPPORTDIRからファイルを使用するには、どのようにinstall shieldに伝えますか? –
InstallShieldがSUPPORTDIRにファイルを抽出し、そのディレクトリのパスに同じ名前のプロパティ(MsiGetPropertyを使用)を設定します。そこからLoadLibrary()を使用してDLLをメモリにロードすることができます。 –