Einzelnen Beitrag anzeigen

Thomas233

Registriert seit: 20. Feb 2004
Ort: Villach
66 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Funktionspointerübergabe eines C-Programmes an Delphi-DL

  Alt 11. Mär 2006, 12:28
Hi,

ich glaube du könntest Recht haben (hab schon irgendwo mal so etwas gesehen) aber entweder der Fehler liegt woanders oder ich krieg das nicht hin.

Hier die geänderten Funktionen:
Delphi-Quellcode:
function SetCallback(_ctrlname:PChar;var _callbfunc:StandardEventCallback):integer; stdcall; export;
var tmpid:integer;
begin
Result:=0;

if (ControlsAliases<>nil) and (ctrlsEventCallbackFunc<>nil) then begin
  tmpid:=ctrlsEventCallbackFunc.Add(@_callbfunc);

  ControlsAliases.Add(_ctrlname);
end
else
  Result:=-1;
end;

function GetEventCallbFuncFromLists(_ctrlname:PChar):StandardEventCallback;
var tmpid:integer;
begin
if (ControlsAliases<>nil) and (ctrlsEventCallbackFunc<>nil) then begin
  tmpid:=ControlsAliases.IndexOf(_ctrlname);

  if tmpid>-1 then
    Result:=ctrlsEventCallbackFunc[tmpid];
end
else
  Result:=nil;
end;

procedure TVCLAdaptEventHandler.CloseEventHandler(_sender:TObject;var _action:TCloseAction);
var tmpCallbFunc:StandardEventCallback;
begin
tmpCallbFunc:=GetEventCallbFuncFromLists(PChar(TControl(_sender).Name));

if Assigned(tmpCallbFunc) then
  tmpCallbFunc(PChar(TControl(_sender).Name),VCLA_CLOSE,PChar(nil));
end;
Ich bin mir nicht sicher ob ich alles richtig umgeändert habe, vor allem bei der Funktion "GetEventCallbFuncFromLists".

Muss ich im C-Programm auch etwas ändern ?

Vielen Dank erstmal für deine Hilfe !

Mit freundlichen Grüßen,
Thomas
  Mit Zitat antworten Zitat