我是作SP的,有ZTE中兴的API如何用C#调用阿?要写小灵通网关高手是否知道,网关运行的整个过程(底层的)
我是作SP的,有ZTE中兴的API如何用C#调用阿?要写小灵通网关高手是否知道,网关运行的整个过程(底层的)
我是做SP的,现在要写小灵通网关,有中兴提供的API 是个DLL文件,不知道C#如何包含调用,在引用里添加报错,说不是COM或组件,API说明文件中推荐用java C++调用
我想能用JAVA调用 ,也应该能用C#调用吧,如果不能调用
现用C#写,不知道底层具体是什么机制,是不是用sokote编程,很急 希望高手指点,有例子更好
里面有如下函数:
API说明如下:
1动态库接口函数调用说明
动态链接库包含smgpapi.dll、smgpapi.lib、smgpapi.h三个文件
使用动态链接库smgpapi.dll,按照如下步骤:
1. 应用程序调用InitSMGPAPI函数用来注册通讯。
2. 注册成功后,应用程序调用SMGPSendLogin函数向网关发送登录消息。另外,应用程序若想终止与外界的通讯,应用程序调用SMGPExitMsg函数发送注销登录消息。
3. 应用程序调用SMGPSendSingle向一个用户发送Submit消息。一般来说,应用程序收到自己所发消息的响应。
4. 应用程序调用SMGPSendBatch向多个用户发送Submit消息。一般来说,应用程序收到自己所发消息的响应。
5. 应用程序调用SMGPDeliver函数接收网关发送来的Deliver消息消息。
6. 应用程序调用SMGPActiveTest函数测试与网关之间的链路。
7. 应用程序调用SMGPSendBatchResp函数查询SMGPSendBatch函数发出消息的响应。
8. 应用程序调用SMGPRecvSNReport函数查询发送消息的状态报告。
9. 应用程序在处理完收到的消息后,必须调用CloseSMGPAPI释放内存。
2动态库接口原型函数
1、BYTE InitSMGPAPI( char SiniFile[], HWND hWnd, HINSTANCE hInstance );
2、BYTE SMGPSendLogin( char ClientID[], char Password[], WORD *pwSendErr, DWORD *pdwStatus, WORD *pwRecvErr );
3、BYTE SMGPSendSingle( SMGPSendSingle_T *ptSMGPSendSingle, WORD *pwSendErr, WORD *pwRecvErr );
4、BYTE SMGPSendBatch( SMGPSendBatch_T *ptSMGPSendBatch, WORD *pwSendErr, WORD *pwRecvErr );
5、BYTE GetSendBatchResp( SendBatchResp_T *ptSendBatchResp, long nPos, char sMsgIDFile[], BOOL *pblFileEnd );
6、BYTE SMGPDeliver( SMGPDeliverReq_T *ptSMGPDeliverReq, WORD *pwSendErr );
7、BYTE SMGPRecvSMReport( IsReport_T *ptIsReport, long nPos, BOOL *pblFileEnd );
8、BYTE SMGPActiveTest( SMGPActiveTest_T *ptSMGPActiveTest );
9、BYTE SMGPExitMsg();
10、void CloseSMGPAPI();
3动态库接口函数说明
(1) BYTE InitSMGPAPI( char SiniFile[], HWND hWnd, HINSTANCE hInstance )
功 能: 应用程序( 进程 )刚启动时, 都必须首先用此函数进行通信初始化。
返 回: 成 功 返 回 0
失 败 返 回 1
输 入:hWnd ---- 应用程序的窗口句柄。
HInstance ---- 应用程序的实例。
SiniFile。---- 配置文件名称和路径
(2) BYTE SMGPSendLogin( char ClientID[], char Password[], WORD *pwSendErr, DWORD *pdwStatus, WORD *pwRecvErr )
功 能:应用程序调用此函数发送Login消息。
返 回:成 功 返 回 0
失 败 返 回 1
输 入:ClientID ---- CP接入号。
Password ---- CP接入密码。
输 出:*pwSendErr ---- 返回发送时的错误码。
*pdwStatus ---- 登录响应状态。
*pwRecvErr ---- 返回接收时的错误码。
(3) BYTE SMGPSendSingle( SMGPSendSingle_T *ptSMGPSendSingle, WORD *pwSendErr, WORD *pwRecvErr )
功 能:应用程序调用此函数向一个目的用户发送Submit消息。
返 回:成 功 返 回 0
失 败 返 回 1
输 入:*ptSMGPSendSingle ---- Sumit消息所需的发送信息,见消息体说明。
输 出:*pwSendErr ---- 返回发送时的错误码。
*pwRecvErr ---- 返回接收时的错误码。
(4) BYTE SMGPSendBatch( SMGPSendBatch_T *ptSMGPSendBatch, WORD *pwSendErr, WORD *pwRecvErr )
功 能:应用程序调用此函数向一个目的用户发送Submit消息。
返 回:成 功 返 回 0
失 败 返 回 1
输 入:*ptSMGPSendBatch ---- Sumit消息所需的发送信息,见消息体说明。
输 出:*pwSendErr ---- 返回发送时的错误码。
*pwRecvErr ---- 返回接收时的错误码。
(5) BYTE GetSendBatchResp( SendBatchResp_T *ptSendBatchResp, long nPos, char sMsgIDFile[], BOOL *pblFileEnd )
功 能:应用程序调用此函数获得群发消息的响应信息。
返 回:成 功 返 回 0
失 败 返 回 1
输 入:nPos ----消息体在文件中的位置,0表示第一条消息,1表示第二条消息…。
sMsgIDFile ---- 存放MsgID的文件名。
输 出:*ptSendBatchResp ----响应消息体,见消息体说明。
*pblFileEnd ---- 返回文件是否结束,FALSE表示未结束,TRUE表示结束
注意:存放MsgID的文件最多只能存放100条消息响应。(即nPos值为0-99)
(6) BYTE SMGPDeliver( SMGPDeliverReq_T *ptSMGPDeliverReq, WORD *pwSendErr )
功 能:应用程序调用此函数获得群发消息的响应信息。
返 回:成 功 返 回 0
失 败 返 回 1
输 出:*ptSMGPDeliverReq ----Deliver消息消息体,见消息体说明。
*pwSendErr ---- 返回发送时的错误码。
*pwRecvErr ---- 返回接收时的错误码。
(7) BYTE SMGPRecvSMReport( IsReport_T *ptIsReport, long nPos, BOOL *pblFileEnd
功 能:应用程序调用此函数获得群发消息的响应信息。
返 回:成 功 返 回 0
失 败 返 回 1
输 入:nPos ----消息体在文件中的位置,0表示第一条消息,1表示第二条消息…。
输 出:*ptIsReport ----状态报告消息体,见消息体说明。
*pblFileEnd ---- 返回文件是否结束,FALSE表示未结束,TRUE表示结束
注意:存放状态报告的名为../config/IsReport.dat,若不存在../config目录则不产生状态报告文件,改文件最多只能存放100条消息响应。(即nPos值为0-99)
(8) BYTE SMGPActiveTest( SMGPActiveTest_T *ptSMGPActiveTest )
功 能:测试CP和网关之间的链路状态
返 回:成功返回 0
失败返回 1
输 入:*ptSMGPActiveTest ---- 链路测试消息体,见消息体说明。
(9) BYTE SMGPExitMsg()
功 能:注销CP接入
返 回:成功返回 0
失败返回 1
(10) CloseSMGPAPI()
功 能:释放资源
应用程序结束时使用