VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 830|回复: 4

如何在线程里调用其他类函数?

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-24 15:00:01 | 显示全部楼层 |阅读模式
比如
class t1 : TThread
{
void __fastcall Execute();
}

class main : TControl
{
void main_f1;
}

void __fastcall t1::Execute()
{
//我想在这里调用main_f1
}

提示找不到整个函数, 但是在Execute里使用vcl函数却可以.
谁能解释一下?
回复

使用道具 举报

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-11 16:15:01 | 显示全部楼层
类的成员当然需要类的实例去调用,或者就是静态函数,能用类名去调用。
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-5-12 10:15:01 | 显示全部楼层
给个简单的例子啊
回复

使用道具 举报

0

主题

45

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-5-19 20:15:01 | 显示全部楼层
可以在TThread构造函数中传入一个指向main的指针

然后进行调用
回复

使用道具 举报

0

主题

45

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-7-4 19:15:01 | 显示全部楼层
__fastcall t1::t1(bool CreateSuspended, main *M)
        : TThread(CreateSuspended)

在类中加上一个main *m;

构造函数中把M赋给M:   m=M;

在Excute中这样调用    m->main_f1;

如果还是不行的话用Synchronize(FUNCTION)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表