Inno Setup から DLL 内の関数を正常に呼び出していますが、戻るとランタイム エラーが発生します...例外: アドレス XXXXXXX でアクセス違反が発生します。アドレス XXXXXX の書き込み。
関数は次のように宣言されます。
function CompleteInstall(szIntallPath: String) : Integer;
external 'CompleteInstall@files:InstallHelper.dll stdcall setuponly';
そして呼び出されました:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
CompleteInstall('Parm1'); // ExpandConstant('{app}')
end;
end;
パラメータを取らない関数に変更しても問題ありません。単一の整数パラメーターを取るように変更するか、関数として宣言し、関数を整数パラメーターを持つ void 関数に変更すると、引き続き発生します。
呼び出された関数は何もせず、次を返します。
__declspec(dllexport) int CompleteInstall(char* szInstallPath)
{
//AfxMessageBox ("Got here" /*szInstallPath*/, MB_OK);
return 1;
}