Hallo Alle,<br>
ich möchte gerne wissen, wie man richtig DLL's in Delphi für ISX 2.13 und 3.02 schreibt. Ich habe z. B. so eine DLL für eine benutzerdefinierte Aktion in ISX 3.02 erstellt:<br>
uses
Classes,
Windows;
{ function MsiGetProperty(hInstall : THandle;
szName : PChar;
szValueBuf : PChar;
pchValueBuf : pointer) : longint; stdcall;
external 'msi.dll'
name 'MsiGetPropertyA';<br>
function ActionNew(hInstall : THandle) : HResult; export; stdcall;<br>
var Buffer : array[0..31] of char;<br>
Count : integer;<br>
begin<br>
Count := SizeOf(Buffer);<br>
MsiGetProperty(hInstall, PChar('INSTALLDIR'), Buffer, @Count);<br>
Windows.MessageBox(0,PChar('Bestätigung'),PChar('S oftware wurde im '+Buffer+' installiert'),MB_OK);<br>
Result := 1;<br>
end;}<br>
function ActionClassic(hwnd : HWND;<br>
szSrcDir,szSupport,szInst,szDbase : PChar) : <br>HResult; export; stdcall;<br>
begin<br>
Windows.MessageBox(0,PChar('Bestätigung'),PChar('S oftware wurde im '+szInst+' installiert'),MB_OK);<br>
Result := 1;<br>
end;<br>
exports<br>
//ActionNew,<br>
ActionClassic;<br>
begin<br>
end.<br>
Nach den Einbinden von der DLL in ISX 3.02 bekomme ich einen Fehler:<br>
** fehler -3713: Der Funktionsblock in benutzerdefinierter Funktion 'CustomAction1' muss in folgender Form vorliegen: Modul::Funktion.<br>
Was ist fasch?<br>
Vielleicht gibt jemand ein Beispiel für die DLL-Definition.<br>
Danke
ich möchte gerne wissen, wie man richtig DLL's in Delphi für ISX 2.13 und 3.02 schreibt. Ich habe z. B. so eine DLL für eine benutzerdefinierte Aktion in ISX 3.02 erstellt:<br>
uses
Classes,
Windows;
{ function MsiGetProperty(hInstall : THandle;
szName : PChar;
szValueBuf : PChar;
pchValueBuf : pointer) : longint; stdcall;
external 'msi.dll'
name 'MsiGetPropertyA';<br>
function ActionNew(hInstall : THandle) : HResult; export; stdcall;<br>
var Buffer : array[0..31] of char;<br>
Count : integer;<br>
begin<br>
Count := SizeOf(Buffer);<br>
MsiGetProperty(hInstall, PChar('INSTALLDIR'), Buffer, @Count);<br>
Windows.MessageBox(0,PChar('Bestätigung'),PChar('S oftware wurde im '+Buffer+' installiert'),MB_OK);<br>
Result := 1;<br>
end;}<br>
function ActionClassic(hwnd : HWND;<br>
szSrcDir,szSupport,szInst,szDbase : PChar) : <br>HResult; export; stdcall;<br>
begin<br>
Windows.MessageBox(0,PChar('Bestätigung'),PChar('S oftware wurde im '+szInst+' installiert'),MB_OK);<br>
Result := 1;<br>
end;<br>
exports<br>
//ActionNew,<br>
ActionClassic;<br>
begin<br>
end.<br>
Nach den Einbinden von der DLL in ISX 3.02 bekomme ich einen Fehler:<br>
** fehler -3713: Der Funktionsblock in benutzerdefinierter Funktion 'CustomAction1' muss in folgender Form vorliegen: Modul::Funktion.<br>
Was ist fasch?<br>
Vielleicht gibt jemand ein Beispiel für die DLL-Definition.<br>
Danke