(100分)小弟我想写一个类,vc和bcb都可以使用,事件处理方面有什么好的办法吗

(100分)我想写一个类,vc和bcb都可以使用,事件处理方面有什么好的办法吗?
比如,我要封装socket,那么socket有一些事件,比如onreceive,在bcb中,可以直接用bcb的事件定义模式,在vc中,有vc的事件定义方式,2者不通用

我想是不是有什么办法可以使得我的代码再2者之间不需要修改就能用?

我可以通过继承我自己写的类的方法,然后重载onreceive函数来实现自定义类与整个程序逻辑的交互,这样稍微显得有点不是特别直观,我想通过事件来实现,这样比较容易使用,代码量更小一些

我有个想法,就是通过回调函数,程序里实现回调函数,然后在初始化类的时候把函数指针传入,但是具体怎么实现还没有想好。

论坛上的高手们有没有好的办法?有就贴一些代码出来参考参考哦!

多谢
------最佳解决方案--------------------

#include <stdio.h>
#include <windows.h>
#include "Unit.H"

void __stdcall StdAlert(Object* sender){
/* EventPtr中的 isa 就是用来判断该函数是否是类成员函数 */
MessageBox(0,sender->ClassName(),"全局函数",MB_OK);
}

class Clock : public Object{
DeclareClassName(Clock)
public:
Clock(){
this->_Tep.OnExecute += this->EventHandler(this->Alert);/* 代理成员函数 */
this->_Tep.OnExecute += this->EventHandler(StdAlert); /* 代理全局函数 */

/* this->_Tep.OnExecute -= this->EventHandler(this->Alert); */

this->_Tep.Run();
}
void __stdcall Alert(Object* sender){
/* 这里的sender其实就是线程类对象 :看类名 */
MessageBox(0,sender->ClassName(),this->ClassName(),MB_OK);
}
private:
Thread _Tep;
};

/* 楼主:看你的问题我不能确定是否 你是想要在BCB和VC上都能有一个相同的
事件机制:如果不是,那就是我理解错了。 

注意事项: 1> 代理的方法调用规则一定要为 :__stdcall

3>  根据我个人经验以及参考C#语言。不要代理virtual函数:

君不见
.NET 类库中UI控件的事件代理都不是虚函数吗?

*/


int main(int argc,char* argv[]){

Clock c;

MessageBox(0,"暂停主线程","测试",0);

return 0;
}

------其他解决方案--------------------
这样子 
我建议你做成dll;
这样不仅CB、VC能用,其他的delphi、C# 等也能用
------其他解决方案--------------------
既然要VC和BCB通用,我的建议是用纯SDK写这个类,至于和界面的数据交互,用回调函数也行,用自定义消息也行。
------其他解决方案--------------------
做成COM标准的DLL才是王道。
------其他解决方案--------------------
做成dll,不要用mfc或者vcl,用标准的c调用规范。
------其他解决方案--------------------
做成标准的dll,事件怎么处理呢?最好有例子能参考就好了,光说说比较不容易理解
------其他解决方案--------------------
做个函数 在你现成的事件里 去调用这个dll里的函数
CB做的DLL,VC去调用 ,之前给别人做的例子
http://blog.****.net/zhouzhangkui/archive/2010/08/16/5815797.aspx
------其他解决方案--------------------

不知道楼主要的是不是这种事件效果..
------其他解决方案--------------------
如果说你只是封装socket句柄的话,我实现的这种事件机制可以帮上忙.
------其他解决方案--------------------
引用:
如果说你只是封装socket句柄的话,我实现的这种事件机制可以帮上忙.


可否把代码多贴一些?多谢!
------其他解决方案--------------------
来关注下
------其他解决方案--------------------
[img=http://hi.****.net/space-73253-do-album-picid-631886-goto-down.html][/img]
------其他解决方案--------------------

#define DeclareClassName(_NAME_)\
public:\
virtual char* ClassName(){\
return #_NAME_;\