有个基本问题,如何传入函数地址并执行(100分)

  • 主题发起人 主题发起人 章译文
  • 开始时间 开始时间

章译文

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的,我想把一个函数地址带到另一个函数中执行
function myfunc1(p: integer)
begin
showmessage('test');
end;
function testfun(callfun : pointer )
var p : integer;
begin

p = 10;
callfun(p);
end;
在delphi中可以这样写吗?
同时如果我要用cbuilder来编写该如何实现?
如果遇到是类的public 中的函数,也能这样调用函数地址吗?
 
还有一个疑惑
我在主单元中创建了类,这个类似如下
class tt
{
public:
。。。
function myfunc1(); //该函数可以在类外访问
}
我把myfunc1地址付给类外某个指针变量中,
当类被摧毁后,我再通过指针变量调用访问这个函数,通过这个指针地址访问,
那么能否访问得到?
就是说我这个类被释放后,其释放的是仅仅类的函数名的表格,
其中类中的函数体部分是否也释放了?如果没有释放函数体部分,那么在获得
了类中的函数体地址,岂不是可以照样操纵该函数。当然这个函数中不能写类变量。
 
可以这样写,但需要强行转换一下
C的我不懂,对不起,帮不了你了
 
先定义一个接口就可以了
type
TCallFunc=function(p: integer);
function myfunc1(p: integer)
begin
showmessage('test');
end;
function testfun(callfun : TCallFunc )
var p : integer;
begin

p = 10;
callfun(p);
end;
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部