我将我的应用程序从Windows移植到Linux。
在Windows版本中,我已定义了此类回调typedef void (__stdcall * OrdersCallback)(orders*);
。然后我像这样实现它:
void __stdcall OrdersHandler(orders* param) {
Processor::Instance().EnqueueFutOrderbook(param);
};
我将指向此处理程序的指针从我的应用程序传递给静态链接库,以便库可以传回数据。
但在Linux中,这行不能编译:{{1}}。我应该如何更新我的回调声明和实现以使其在Linux中编译?
答案 0 :(得分:1)
如果执行回调并仅在程序/ lib中使用
(即没有外部的库将调用它),那么调用约定无关紧要
只需删除__stdcall
无处不在