c++ 动态加载so文件,传指针问题

宇宙观光客 发布于 2014/03/07 15:03
阅读 1K+
收藏 0
c++

c++动态加载so文件,能不能将socket类指针穿进去呢?

我尝试了一下怎么也没法搞定。求解

class CSocketBase

{

int senddata(char* data, int nLen);

}

class CMyClient:public CSocketBase

现在在CMyClient接收到数据后动态加载so文件,将数据内容传递进去进行处理。

test.so

extern "C" int CreatObj(CSourceBase *& client);
extern "C" int DestoryObj(CSourceBase *& client);

class CSourceBase
{
    public:
        CSourceBase(){};
        virtual ~CSourceBase(){};
    public:
        virtual int DoLogic(char *lpszHeadData, int nHeadSize, char *lpszBodyData, int nBodySize, CSocketBase*pClient)=0;

};

然后将处理结果发送回去,我将CSocketBase指针传递进去,so能够加载,但是CreatObj失败,这该如何处理?

去掉传递CSocketBase指针,就能正常加载并调用

以下是问题补充:

@宇宙观光客:又修改了一下,传了void*进去,强转为socket类指针,但是只要有调用就不行了,不调用,就可以正常用。 向so中传递指针,不能调用吗 (2014/03/07 15:38)
加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部