unity调用动态库so unity调用动态库dll

本文介绍了如何在Unity游戏中调用不同平台的动态库,如Windows的DLL和Android的SO库。通过创建C#类来封装SDK接口,并在相应平台的指定目录放置库文件,实现了HYP2P P2P SDK在Unity环境中的跨平台使用。
摘要由CSDN通过智能技术生成

HYP2P底层是用c语言实现的,这套p2p sdk中间件支持安卓,ios,windows平台。

在unity环境中要使用windows dll,或者安卓动态库so,ios lib库文件,首先需要根据sdk接口,生成一个C#类,导出需要使用到的接口函数。

先看HYP2P sdk的接口定义:

 
typedef void (*LOGFUN)(const char* str);
typedef void (*P2PCallback)(int session, int state );
typedef void (*P2PDataCallback)(int cmd, int subcmd, const void * pDataBuffer, int wDataSize);
 
//==================================================================
//用户app端和设备端都使用的api
//==================================================================
 
//login_domain - p2p服务器的域名或ip
//login_port   - p2p服务器的端口号
//logfile       - 本地日志文件的路径,utf8编码
P2PAPI_API int p2p_engine_init(const char* login_domain,int login_port, const char* logfile);
 
//p2p可选项定义:
 
#define P2P_OPTION_SINGLE_THREAD    0X0001 //单线程模式
//当前只有 P2P_OPTION_SINGLE_THREAD 一个选项,不推荐使用
P2PAPI_API void p2p_set_option(int opt);
 
P2PAPI_API void p2p_engine_destroy( );
 
//不推荐使用: 单线程模式下才需要在主循环中调用此函数
P2PAPI_API void p2p_engine_update( );
 
P2PAPI_API void setP2PLogCallback(LOGFUN f);
P2PAPI_API void setP2PCallBack(int nType, P2PCallback fn);
P2PAPI_API void setP2PDataCallback(int nType, P2PDataCallback fn);
// ipType=0 IPv4 or IPV6
// ipType=1 IPv4
// ipType=2 IPv6
P2PAPI_API int  p2p_get_localip(char* ip, int buflen);
P2PAPI_API void p2p_set_localip(char* ip);
 
// level取值0-3,越大日志越详细
P2PAPI_API void p2p_set_log_level(int level);
 
P2PAPI_API int  p2p_get_free_session();
P2PAPI_API int  p2p_create_session(int session);
P2PAPI_API void p2p_close_session(int session);
 
#ifdef __cplusplus
P2PAPI_API void p2p_set_sink(int session, IP2PSessionSink* sink);
#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值