windowsn到linux的移植:如何替换__stdcall

windown to linux porting: how to replace __stdcall?

本文关键字:替换 stdcall 何替换 linux windowsn      更新时间:2023-10-16

我正在将我的应用程序从Windows移植到Linux。在Windows版本中,我定义了这样的回调typedef void (__stdcall * OrdersCallback)(orders*);。然后我这样实现它:

void __stdcall OrdersHandler(orders* param) {
    Processor::Instance().EnqueueFutOrderbook(param);
};

我将指向这个处理程序的指针从应用程序传递到静态链接库,这样库就可以将数据传递回。

但在Linux中,这一行并不编译:typedef void (__stdcall * OrdersCallback)(orders*);。我应该如何更新回调声明和实现以使其在Linux中编译?

如果回调仅在程序/lib中实现和使用(即没有外部libs会调用它),那么调用约定就无关紧要了
只需在各处删除__stdcall