#ifndef _SOURCE_BASE_H_
#define _SOURCE_BASE_H_
#include <iostream>
using namespace std;
class CSourceBase;
/**
* @brief 获取实例
*
* @param client new出的指针
*
* @return 0 succ
* else fail
*/
extern “C” int CreatObj(CSourceBase *& client);
class CSourceBase
{
public:
CSourceBase(){};
virtual ~CSourceBase(){};
public:
virtual int GetFriends(int iUin,char *data,int &iLen,int maxLen)
{
return 0;
}
};
#endif
#ifndef _XY_SOURCE_H_
#define _XY_SOURCE_H_
#include <iostream>
#include “sourcebase.h”
using namespace std;
class CXY_Source:public CSourceBase
{
public:
CXY_Source();
virtual ~CXY_Source();
{}
int GetFriends(int iUin,char *data,int &iLen,int maxLen);
};
#endif
#include “xy_source.h”
int CreatObj(CSourceBase *& client)
{
client = new CXY_Source();
return 0;
}
CXY_Source::CXY_Source() { }
CXY_Source::~CXY_Source() { }
int CXY_Source::GetFriends(int iUin,char *data,int &iLen,int maxLen)
{
return 0;
}
#ifndef _XY_CLIENT_H_
#define _XY_CLIENT_H_
#include <iostream>
#include “sourcebase.h”
using namespace std;
typedef int (*FunPtr)(CSourceBase *& client);
class CXY_Client
{
public:
static void *SoObj;
public:
CXY_Client();
virtual ~CXY_Client();
//载入so
int Init(const char * soname);
int GetFriends(int iUin,char *data,int &iLen,int maxLen);
private:
CSourceBase *m_Client;
};
#include “xy_client.h”
void* CXY_Client::SoObj=NULL;
CXY_Client::CXY_Client()
{
m_Client = NULL;
}
CXY_Client::~CXY_Client()
{
if(m_Client)
{
delete m_Client;
}
}
int CXY_Client::Init(const char * soname)
{
string strSoName;
if(soname==NULL)
{
strSoName = “../lib/xysource.so”;
}
else
{
strSoName = soname;
}
if(strSoName.size()==0)
{
strSoName = “../lib/xysource.so”;
}
if(CXY_Client::SoObj == NULL)
{
SoObj=dlopen((char*)strSoName.c_str(),RTLD_LAZY);
if(SoObj==NULL)
{
return -1;
}
}
if(m_Client==NULL)
{
FunPtr func;
func = (FunPtr)dlsym(SoObj, “CreatObj”);
int ret = (*func)(m_Client);
if(ret)
{
return -2;
}
}
return 0;
}
int CXY_Client::GetFriends(int iUin,char *data,int &iLen,int maxLen)
{
return m_Client->GetFriends(iUin,data,iLen,maxLen);
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有