안녕하세요?
DLL 에서 Main의 임의 class 내에 있는
Function을 호출하고 싶은데, 가능한지요?
-------------main 선언부
Taaa = class;
procted
public
constructor create();
destructor destory;
procedure a;
procedure b;
end;
Tbbb = class;
procted
public
constructor create();
destructor destory;
function thisfunction(var a : integer);//이걸 호출하고 싶어요. DLL에서
end;
-------------------DLL (Library 외에 별도 Unit 구성함) testdll.pas
//library 의 uses 에 testdll in 'testdll.pas';
Tdll_type = class(Tobject)
private
function dll_A():arecord;
end;
var
dlltype : Tdll_type;
function dll_a():arecord; stdcall;
implementation
function Tdll_type:dlltype():arecord;
begin
//여기에서 호출하고 싶어요...
//Main의 Tbbb class의 thisfunction을..
end;
방법이 없을까요?
있다면, 간단한 예제좀 부탁드리겠습니다..
도와 주세요...
감사합니다.
님께서 원하시는 것은 아마 콜백함수 또는 함수포인터 사용등을 알아보시면
될꺼에요
간혹 보시면 edit1.Onclick = Myfunction;
이런것이 있을꺼에요 이런것들이 함수 포인터를 사용하는거에요;
다른말로는 콜백함수(사용자는 별의미 없이 사용하지만)
라고도 하고요
type
TFunc1= Function : string of object; <- object의 멤버함수 사용시
TFunc2= Function : string ; <- Global Function 함수정의
...
var A : TFunc1;
procedure PutFunc(AAA : Tfunc1); stdcall; external ....;
나머지는 헬프에서 pointer로 검색하여 보십시요.
이궁 두서없이 적었네요..
일단 함수포인터 사용입니다... 그럼 즐코..