VC里的this在C里是怎么写?

fangerhua 2008-11-26 12:04:35
函数opendevise(COMM, (LPVOID)POSTCallBack, (LPVOID)this)是DLL库中的函数在VC下的调用方式,在C里第三个参数This怎么写?
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amuro1987218 2008-11-28
  • 打赏
  • 举报
回复
定义个函数指针是可以的
lzg0001 2008-11-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dch4890164 的回复:]
C/C++ codestructtag//原理大概是这样{inta;intb;
tag*this_i;//直接写this命名vc通不过,用它替代voidopendevise(intddd,void*,void*){};
};
tag t;
t.this_i=&t;
==============================================
但是楼主显然搞混了概念,虽然你也可以在c里实现this指针的功能
[/Quote]

C 语言的结构体里能定义成员函数 ?
huanyuan12 2008-11-28
  • 打赏
  • 举报
回复
学一招
程序员刘帅 2008-11-26
  • 打赏
  • 举报
回复
this指针只有C++才有啊,C语言里面没有this指针。

这个要看opendevise这个函数怎么实现了,如果它回调的是类的方法的话,
如 this->*POSTCallBack(),这个函数就无法在C语言里面调用,只能在C++里面使用。

用户 昵称 2008-11-26
  • 打赏
  • 举报
回复
第三个参数你应该可以填NULL。
  • 打赏
  • 举报
回复
你把你的this代表的对象名写上应该可以吧!
闪破风浪 2008-11-26
  • 打赏
  • 举报
回复
this像是一个智能指针。。。。
C是没有的~~~
dch4890164 2008-11-26
  • 打赏
  • 举报
回复

struct tag//原理大概是这样
{
int a;
int b;
tag* this_i;//直接写this命名vc通不过,用它替代
void opendevise(int ddd, void*, void*){};
};
tag t;
t.this_i = &t;

==============================================
但是楼主显然搞混了概念,虽然你也可以在c里实现this指针的功能
westfly 2008-11-26
  • 打赏
  • 举报
回复
一个提供给回调函数用的数据指针而已,如果你在回调函数的实现中需要用到自己定义的数据,把用到的数据取址传进去就是了(有多个数据的话就封装到一个结构中,传该结构体的址),如果不需用到自己定义的数据,传NULL就行。
cnzdgs 2008-11-26
  • 打赏
  • 举报
回复
类是C++中的概念,C里面没有类,自然也就没有this。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧