Dll可以提供回调函数的接口,供用户注册一个函数func, 然后,dll可以以一定的频率调用func,例如,将最新数据通过该函数给传递给用户;
《Api design for- c plus》2.5.5:
In C/C++, a callback is a pointer to a function within module A that is passed to module B, so that B can invoke the function in A at an appropriate time. Module B knows nothing about module A and has no include or link dependencies upon A. This makes callbacks particularly useful to allow low-level code to execute high-level code that it cannot have a link dependency on.
As such, callbacks are a popular technique to break cyclic dependencies in large projects.
It is also sometimes useful to supply a “closure” with the callback function. This is a piece of data that module A passes to B, and which module B includes in the function callback to A. This is a way for module A to pass through some state that will be important to receive in the callback function.
The following header file shows how you can define a simple callback API in C++:
Of course, a more sophisticated example would support adding multiple callbacks to ModuleB, perhaps storing them in a std::vector, and then invoke each registered callback in turn.