急!php如何调用c++写的动态链接库

xixilin

问题描述

全部文件
上面是所有文件
.so是动态链接库,.h是对外暴露的方法

比如文件 ThostFtdcMdApi.h

#if !defined(THOST_FTDCMDAPI_H)
#define THOST_FTDCMDAPI_H

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ThostFtdcUserApiStruct.h"

#if defined(ISLIB) && defined(WIN32)
#ifdef LIB_MD_API_EXPORT
#define MD_API_EXPORT __declspec(dllexport)
#else
#define MD_API_EXPORT __declspec(dllimport)
#endif
#else
#define MD_API_EXPORT 
#endif

class CThostFtdcMdSpi
{
public:

    virtual void OnFrontConnected(){};

    virtual void OnFrontDisconnected(int nReason){};

    virtual void OnHeartBeatWarning(int nTimeLapse){};

    virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

    virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
    //......
};

class MD_API_EXPORT CThostFtdcMdApi
{
public:

    static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);

    static const char *GetApiVersion();

    virtual void Release() = 0;

    virtual void Init() = 0;

    virtual int Join() = 0;

    virtual const char *GetTradingDay() = 0;

    virtual void RegisterFront(char *pszFrontAddress) = 0;

    virtual void RegisterNameServer(char *pszNsAddress) = 0;
    //......
protected:
    ~CThostFtdcMdApi(){};
};

#endif

为此你搜索到了哪些方案及不适用的原因

请教一下各位朋友,要如何请求那些接口呢

267 3 0
3个回答

jack10082009

PHP有个FFI扩展。详情一嘴两嘴说不清楚,可以百度一下这个。

  • xixilin 5天前

    有试过,ffi不能调用c++,c++得转成c才可以,不会c++,c

muyu

可以尝试吧c++编译为php扩展使用,具体实现可以咨询AI

  • 暂无评论
胡桃

这个简单,你愿意支付多少?

  • 暂无评论
🔝