Laufzeit-exception beim Aufruf von dll-Funktion mit parameter in Inno Setup

Ich bin erfolgreich aufrufen einer Funktion in einer DLL die von Inno-Setup, aber nach der Rückkehr erhalte ich einen Laufzeit-Fehler...Ausnahme: Zugriffsverletzung bei Adresse XXXXXXX. Schreiben von Adresse XXXXXX.

Die Funktion ist deklariert als:

function CompleteInstall(szIntallPath: String) :  Integer;
external 'CompleteInstall@files:InstallHelper.dll stdcall setuponly';

Und rief:

procedure CurStepChanged(CurStep: TSetupStep);
begin
   if CurStep = ssPostInstall then begin
      CompleteInstall('Parm1'); //ExpandConstant('{app}')
   end;
end;

Ist es kein problem, wenn ich die Funktion keine parameter. Es tritt weiterhin auf, wenn ich es ändern um einen einzelnen integer-parameter oder deklarieren es als Funktion und ändern Sie die Funktion ein void-Funktion mit einem integer-parameter.

Die aufgerufene Funktion die nichts tut, sondern zurück:

__declspec(dllexport) int CompleteInstall(char* szInstallPath)
{
    //AfxMessageBox ("Got here" /*szInstallPath*/, MB_OK);
    return 1;
}
InformationsquelleAutor AlanKley | 2009-06-05
Schreibe einen Kommentar