我用通过delphi调用对方用C++开发出来的dll,请大家帮我翻译一下下面这个函数了

yanghaiyanghai 2017-09-26 03:35:22
请求哪位高手能够帮我翻译那么几句话吗,要翻译成delphi可以识别和调用的语句,真不知道该如何下手来翻译下面这些语句,这些语句我是通过dependecy工具调取dll里面得到的接口清单。如果可以帮我处理,我将会高分感谢。
const easemob::EMBaseObject::`vftable'
easemob::EMBaseObject::EMBaseObject(class easemob::EMBaseObject const &)
easemob::EMBaseObject::EMBaseObject(void)
class easemob::EMBaseObject & easemob::EMBaseObject::operator=(class easemob::EMBaseObject const &)
easemob::EMBaseObject::~EMBaseObject(void)
const easemob::EMCallback::`vftable'
easemob::EMCallback::EMCallback(class easemob::EMCallbackObserverHandle const &,class std::function<bool (void)>,class std::function<bool (class std::shared_ptr<class easemob::EMError>)>,class std::function<void (int)>)
bool easemob::EMCallback::onFail(class std::shared_ptr<class easemob::EMError>)
void easemob::EMCallback::onProgress(int)
bool easemob::EMCallback::onSuccess(void)
easemob::EMCallback::~EMCallback(void)
const easemob::EMCallbackObserverHandle::`vftable'
easemob::EMCallbackObserverHandle::EMCallbackObserverHandle(void)
easemob::EMCallbackObserverHandle::~EMCallbackObserverHandle(void)
const easemob::EMChatClient::`vftable'
void easemob::EMChatClient::addConnectionListener(class easemob::EMConnectionListener *)
void easemob::EMChatClient::addLogCallback(class easemob::EMLogCallbackInterface *)
class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::autoLogin(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatClient::bindUserDeviceToken(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class easemob::EMError &)
class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::changeAppkey(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
class easemob::EMChatClient * easemob::EMChatClient::create(class std::shared_ptr<class easemob::EMChatConfigs>)
class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::createAccount(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatClient::disconnect(void)
easemob::EMChatClient::EMChatClient(void)
void easemob::EMChatClient::forceDisconnect(void)
class std::shared_ptr<class easemob::EMChatConfigs> easemob::EMChatClient::getChatConfigs(void)
class easemob::EMChatManagerInterface & easemob::EMChatClient::getChatManager(void)
class easemob::EMChatroomManagerInterface & easemob::EMChatClient::getChatroomManager(void)
class std::shared_ptr<class easemob::EMConfigManager> easemob::EMChatClient::getConfigManager(void)
class easemob::EMContactManagerInterface & easemob::EMChatClient::getContactManager(void)
class std::shared_ptr<class easemob::EMDatabase> easemob::EMChatClient::getDatabase(void)
class easemob::EMGroupManagerInterface & easemob::EMChatClient::getGroupManager(void)
class easemob::EMLoginInfo const & easemob::EMChatClient::getLoginInfo(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > easemob::EMChatClient::getUserInformation(class easemob::EMError &)
class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::getUserToken(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,bool)
void easemob::EMChatClient::init(class std::shared_ptr<class easemob::EMChatConfigs>)
bool easemob::EMChatClient::isConnected(void)
bool easemob::EMChatClient::isLoggedIn(void)
class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::login(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatClient::logout(void)
void easemob::EMChatClient::onNetworkChanged(enum easemob::EMNetworkListener::EMNetworkType)
void easemob::EMChatClient::reconnect(void)
void easemob::EMChatClient::removeConnectionListener(class easemob::EMConnectionListener *)
void easemob::EMChatClient::removeLogCallback(class easemob::EMLogCallbackInterface *)
void easemob::EMChatClient::sendPing(void)
bool easemob::EMChatClient::sendPing(bool,long)
void easemob::EMChatClient::updateDeviceInformation(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class easemob::EMError &)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > easemob::EMChatClient::updateUserInformation(class easemob::EMError &,class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class easemob::EMAttributeValue,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class easemob::EMAttributeValue> > > const &)
easemob::EMChatClient::~EMChatClient(void)
const easemob::EMChatConfigs::`vftable'
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::clientResource(void)
easemob::EMChatConfigs::EMChatConfigs(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getAppKey(void)
bool easemob::EMChatConfigs::getAutoAcceptFriend(void)
bool easemob::EMChatConfigs::getAutoAcceptGroup(void)
bool easemob::EMChatConfigs::getAutoConversationLoaded(void)
bool easemob::EMChatConfigs::getDeleteMessageAsExitChatRoom(void)
bool easemob::EMChatConfigs::getDeleteMessageAsExitGroup(void)
unsigned int easemob::EMChatConfigs::getDeviceID(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getDownloadPath(void)
bool easemob::EMChatConfigs::getEnableConsoleLog(void)
bool easemob::EMChatConfigs::getIsChatroomOwnerLeaveAllowed(void)
bool easemob::EMChatConfigs::getIsSandboxMode(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getLogPath(void)
class std::shared_ptr<class easemob::EMNetCallback> easemob::EMChatConfigs::getNetCallback(void)
int easemob::EMChatConfigs::getNumOfMessageLoaded(void)
enum easemob::EMChatConfigs::OSType easemob::EMChatConfigs::getOs(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getOsVersion(void)
bool easemob::EMChatConfigs::getRequireDeliveryAck(void)
bool easemob::EMChatConfigs::getRequireReadAck(void)
bool easemob::EMChatConfigs::getRequireServerAck(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getResourcePath(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getSdkVersion(void)
bool easemob::EMChatConfigs::getSortMessageByServerTime(void)
bool easemob::EMChatConfigs::getUseEncryption(void)
bool easemob::EMChatConfigs::getUsingHttps(void)
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getWorkPath(void)
class easemob::EMChatPrivateConfigs & easemob::EMChatConfigs::privateConfigs(void)
void easemob::EMChatConfigs::setAppKey(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatConfigs::setAutoAcceptFriend(bool)
void easemob::EMChatConfigs::setAutoAcceptGroup(bool)
void easemob::EMChatConfigs::setAutoConversationLoaded(bool)
void easemob::EMChatConfigs::setClientResource(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatConfigs::setDeleteMessageAsExitChatRoom(bool)
void easemob::EMChatConfigs::setDeleteMessageAsExitGroup(bool)
void easemob::EMChatConfigs::setDownloadPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatConfigs::setEnableConsoleLog(bool)
void easemob::EMChatConfigs::setIsChatroomOwnerLeaveAllowed(bool)
void easemob::EMChatConfigs::setIsSandboxMode(bool)
void easemob::EMChatConfigs::setLogLevel(enum easemob::EMChatConfigs::EMLogLevel)
void easemob::EMChatConfigs::setLogPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatConfigs::setNetCallback(class std::shared_ptr<class easemob::EMNetCallback>)
void easemob::EMChatConfigs::setNumOfMessageLoaded(int)
void easemob::EMChatConfigs::setOs(enum easemob::EMChatConfigs::OSType)
void easemob::EMChatConfigs::setOsVersion(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)
void easemob::EMChatConfigs::setRequireDeliveryAck(bool)
void easemob::EMChatConfigs::setRequireReadAck(bool)
void easemob::EMChatConfigs::setRequireServerAck(bool)
...全文
1333 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
makekone 2017-09-26
  • 打赏
  • 举报
回复
要一份头文件。 c++11 不是编译工具。
lyhoo163 2017-09-26
  • 打赏
  • 举报
回复
有点花眼。
  • 打赏
  • 举报
回复
这个有导出类,基本上不可能用其他语言调用,即便用C++,但是不同的编译器,都可能有问题,比如代码是VC++写的,你用CB调用,或者反之。
yanghaiyanghai 2017-09-26
  • 打赏
  • 举报
回复
引用 楼主 yanghaiyanghai 的回复:
请求哪位高手能够帮我翻译那么几句话吗,要翻译成delphi可以识别和调用的语句,真不知道该如何下手来翻译下面这些语句,这些语句我是通过dependecy工具调取dll里面得到的接口清单。如果可以帮我处理,我将会高分感谢。 const easemob::EMBaseObject::`vftable' easemob::EMBaseObject::EMBaseObject(class easemob::EMBaseObject const &) easemob::EMBaseObject::EMBaseObject(void) class easemob::EMBaseObject & easemob::EMBaseObject::operator=(class easemob::EMBaseObject const &) easemob::EMBaseObject::~EMBaseObject(void) const easemob::EMCallback::`vftable' easemob::EMCallback::EMCallback(class easemob::EMCallbackObserverHandle const &,class std::function<bool (void)>,class std::function<bool (class std::shared_ptr<class easemob::EMError>)>,class std::function<void (int)>) bool easemob::EMCallback::onFail(class std::shared_ptr<class easemob::EMError>) void easemob::EMCallback::onProgress(int) bool easemob::EMCallback::onSuccess(void) easemob::EMCallback::~EMCallback(void) const easemob::EMCallbackObserverHandle::`vftable' easemob::EMCallbackObserverHandle::EMCallbackObserverHandle(void) easemob::EMCallbackObserverHandle::~EMCallbackObserverHandle(void) const easemob::EMChatClient::`vftable' void easemob::EMChatClient::addConnectionListener(class easemob::EMConnectionListener *) void easemob::EMChatClient::addLogCallback(class easemob::EMLogCallbackInterface *) class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::autoLogin(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatClient::bindUserDeviceToken(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class easemob::EMError &) class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::changeAppkey(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) class easemob::EMChatClient * easemob::EMChatClient::create(class std::shared_ptr<class easemob::EMChatConfigs>) class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::createAccount(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatClient::disconnect(void) easemob::EMChatClient::EMChatClient(void) void easemob::EMChatClient::forceDisconnect(void) class std::shared_ptr<class easemob::EMChatConfigs> easemob::EMChatClient::getChatConfigs(void) class easemob::EMChatManagerInterface & easemob::EMChatClient::getChatManager(void) class easemob::EMChatroomManagerInterface & easemob::EMChatClient::getChatroomManager(void) class std::shared_ptr<class easemob::EMConfigManager> easemob::EMChatClient::getConfigManager(void) class easemob::EMContactManagerInterface & easemob::EMChatClient::getContactManager(void) class std::shared_ptr<class easemob::EMDatabase> easemob::EMChatClient::getDatabase(void) class easemob::EMGroupManagerInterface & easemob::EMChatClient::getGroupManager(void) class easemob::EMLoginInfo const & easemob::EMChatClient::getLoginInfo(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > easemob::EMChatClient::getUserInformation(class easemob::EMError &) class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::getUserToken(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,bool) void easemob::EMChatClient::init(class std::shared_ptr<class easemob::EMChatConfigs>) bool easemob::EMChatClient::isConnected(void) bool easemob::EMChatClient::isLoggedIn(void) class std::shared_ptr<class easemob::EMError> easemob::EMChatClient::login(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatClient::logout(void) void easemob::EMChatClient::onNetworkChanged(enum easemob::EMNetworkListener::EMNetworkType) void easemob::EMChatClient::reconnect(void) void easemob::EMChatClient::removeConnectionListener(class easemob::EMConnectionListener *) void easemob::EMChatClient::removeLogCallback(class easemob::EMLogCallbackInterface *) void easemob::EMChatClient::sendPing(void) bool easemob::EMChatClient::sendPing(bool,long) void easemob::EMChatClient::updateDeviceInformation(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class easemob::EMError &) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > easemob::EMChatClient::updateUserInformation(class easemob::EMError &,class std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class easemob::EMAttributeValue,struct std::less<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class easemob::EMAttributeValue> > > const &) easemob::EMChatClient::~EMChatClient(void) const easemob::EMChatConfigs::`vftable' class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::clientResource(void) easemob::EMChatConfigs::EMChatConfigs(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned int) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getAppKey(void) bool easemob::EMChatConfigs::getAutoAcceptFriend(void) bool easemob::EMChatConfigs::getAutoAcceptGroup(void) bool easemob::EMChatConfigs::getAutoConversationLoaded(void) bool easemob::EMChatConfigs::getDeleteMessageAsExitChatRoom(void) bool easemob::EMChatConfigs::getDeleteMessageAsExitGroup(void) unsigned int easemob::EMChatConfigs::getDeviceID(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getDownloadPath(void) bool easemob::EMChatConfigs::getEnableConsoleLog(void) bool easemob::EMChatConfigs::getIsChatroomOwnerLeaveAllowed(void) bool easemob::EMChatConfigs::getIsSandboxMode(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getLogPath(void) class std::shared_ptr<class easemob::EMNetCallback> easemob::EMChatConfigs::getNetCallback(void) int easemob::EMChatConfigs::getNumOfMessageLoaded(void) enum easemob::EMChatConfigs::OSType easemob::EMChatConfigs::getOs(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getOsVersion(void) bool easemob::EMChatConfigs::getRequireDeliveryAck(void) bool easemob::EMChatConfigs::getRequireReadAck(void) bool easemob::EMChatConfigs::getRequireServerAck(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getResourcePath(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getSdkVersion(void) bool easemob::EMChatConfigs::getSortMessageByServerTime(void) bool easemob::EMChatConfigs::getUseEncryption(void) bool easemob::EMChatConfigs::getUsingHttps(void) class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const & easemob::EMChatConfigs::getWorkPath(void) class easemob::EMChatPrivateConfigs & easemob::EMChatConfigs::privateConfigs(void) void easemob::EMChatConfigs::setAppKey(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatConfigs::setAutoAcceptFriend(bool) void easemob::EMChatConfigs::setAutoAcceptGroup(bool) void easemob::EMChatConfigs::setAutoConversationLoaded(bool) void easemob::EMChatConfigs::setClientResource(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatConfigs::setDeleteMessageAsExitChatRoom(bool) void easemob::EMChatConfigs::setDeleteMessageAsExitGroup(bool) void easemob::EMChatConfigs::setDownloadPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatConfigs::setEnableConsoleLog(bool) void easemob::EMChatConfigs::setIsChatroomOwnerLeaveAllowed(bool) void easemob::EMChatConfigs::setIsSandboxMode(bool) void easemob::EMChatConfigs::setLogLevel(enum easemob::EMChatConfigs::EMLogLevel) void easemob::EMChatConfigs::setLogPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatConfigs::setNetCallback(class std::shared_ptr<class easemob::EMNetCallback>) void easemob::EMChatConfigs::setNumOfMessageLoaded(int) void easemob::EMChatConfigs::setOs(enum easemob::EMChatConfigs::OSType) void easemob::EMChatConfigs::setOsVersion(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &) void easemob::EMChatConfigs::setRequireDeliveryAck(bool) void easemob::EMChatConfigs::setRequireReadAck(bool) void easemob::EMChatConfigs::setRequireServerAck(bool)
对方提供的资料说是编译工具为:c++11
Delphi中制作DLL •一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数 2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。 二参数传递 1 参数类型最好与window C++的参数类型一致。不要用DELPHI的数据类型。 2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼容。 3 用stdcall声明后缀。 4 最好大小写敏感。 5 无须用far调用后缀,那只是为了与windows 16位程序兼容。 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 1 DLLProc[SysUtils单元的一个Pointer]是DLL的入口。在此你可用你的函数替换了它的入口。但你的函数必须符合以下要求[其实就是一个回调函数]。如下: procedure DllEnterPoint(dwReason: DWORD);far;stdcall; dwReason参数有四种类型: DLL_PROCESS_ATTACH:进程进入时 DLL_PROCESS_DETACH进程退出时 DLL_THREAD_ATTACH 线程进入时 DLL_THREAD_DETACH 线程退出时 在初始化部分写: DLLProc := @DLLEnterPoint; DllEnterPoint(DLL_PROCESS_ATTACH); 2 如Form上有TdcomConnection组件,就Uses Activex,在初始化时写一句CoInitialize (nil); 3 在退出时一定保证DcomConnection.Connected := False,并且数据集已关闭。否则报地址错。 四全局变量的使用 在widnows 32位程序中,两个应用程序的地址空间是相互没有联系的。虽然DLL在内存中是一份, 但变量是在各进程的地址空间中,因此你不能借助dll的全局变量来达到两个应用程序间的数据 传递,除非你用内存映像文件。 五、其他:调用方式按照标准的Windows调用方式. 六、关于参数传递 •Delphi程序之间调用DLL,如果要用String类型的话,要在引用的单元加上ShareMem 单元。 •如果Delphi写的DLL供其他开发工具使用的话,不要使用String类型,用PAnsiChar类型。 尽量使用标准DLL接口。指的是传递的参数类型及函数返回类型不能是Delphi特有的, 比如string(AnsiString),以及动态数组和含有这些类型成员的复合类型(如记录),也不 能是包含有这些类型成员数据成员的对象类型,以避免可能的错误。如果使用了string类型或 动态数组类型,且调用方不是Delphi程序,则基本上会报错。如果调用方是Delphi调用方或 被调用方没有在工程文件的第一包含单元不是ShareMem,也可能会出错。 七、关于回调Funciton 你可以把Callback函数看作是一种特殊的消息响应函数,一般来说我们不会自己调用这种函数, 而是有某些系统函数调用,而且不需要向后传递消息。 只要象C/C++这样支持函数指针的语言都 有回调函数的概念,它实际上是向被调用函数传一个你的函数地址,然后被调用函数向通过你传 入的函数地址来调用你的函数 。 以上是结构化回调,到高级语言Object Pascal、C++中回调函数并没有退出,反而得到延伸与 扩展,在面向对像中的回调,其实是指面向对像中类对像的事件,事件就是原始的回调函数。面 向对像, 将回调函数定义成事件过程,在程序引用对像时,若指定了对像的过程事件后,那么在 要进行事件触发的地方检查事件过程是否分配,如果分中的就执行事,也就是执行了回调函数

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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