⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 empp.pas

📁 [解决方法] 对上述程序改动如下: 发送端: MMM SendBag ZeroMemory(&SendBag,sizeof(SendBag)) .............
💻 PAS
字号:
unit empp;

interface

type
{!多线程程序注意!
此api只保证在主线程里调用才是安全的,其他线程不要直接调用!如果需要调用请先交给主线程
,由主程序提交消息.
api提交接收消息速度很快,不必担心性能问题.
}

  {跟踪回调涵数,用于api输出信息,此涵数线程是主线程}

  TTraceProc = procedure(Msg: PChar); stdcall;

  {当api接收到一条短信(以下简称mo)时的回调涵数,此涵数执行时将阻塞api的消息处理,
   因此需要保证此涵数尽快完成操作,否则影响api的收发流程.此涵数线程是主线程
  }

  TMOProc = procedure(SrcAddr: PChar; Msg: PChar); stdcall;

{以下是api提供的涵数}

{初试化api,传入短信服务器的ip,port,用户名,密码,持久性海量存储使用的队列文件名,
队列最大容量,api跟踪回调涵数,mo回调涵数
api提供由文件实现的海量队列,队列大小由调用者配置,如果程序退出时还有短信未发送完毕,
则下次启动时将继续自动提交;如果队列大小跟上次设置的不同,队列将被清空,未发送短信将丢失,
队列大小与发送效率几乎无关,只是占用硬盘空间,因此可以将队列设置为可能提交的最大值,
如50000.队列文件如果不存在会自动生成,如果存在则重细腻打开.

此涵数在进程生命期只需要调用一次.
返回:0成功,其他失败.
}
function Init(ip: PChar; Port: Word; User: PChar; Pswd: PChar; Queue: PChar; QueueSize: Integer; Trace: TTraceProc; MO: TMOProc): Integer; stdcall;

{提交短信到api对列,api将自动后台处理.
输入:
DestAddr:目的号码,手机不加0,如13812345678,小灵通或固话加区号,如07178765432
Msg:短信内容,不超过70字符,数字字母汉字都算一个.如果超长调用者需要分割后再发送.api不分割.
返回:
0:成功提交.
其他:失败.
}
function SendSMS(DestAddr: PChar; Msg: PChar): Integer; stdcall;

{
查询余额
返回:
如果未登录状态,返回0
}
function GetBalance: Integer; stdcall;

{
设置api是否调试状态,调试状态下输出更多协议信息
输入:
0:不调试.
其他:调试状态
}
procedure SetDebug(Value: Integer); stdcall;

{
查询api队列待发短信数量
}
function GetUnSend: Integer; stdcall;

{
查询api状态
返回:
0:未正确初试化.
1:'连接断开'
2:'连接已建立'
3:'正在登录'
4:'已登录'
5:'已退出登录'
}
function GetState: Integer; stdcall;

{
释放api资源.
}
procedure Uninit(); stdcall;

implementation

const
   DLLNAME = 'empp.dll';

function Init; external DLLNAME;
function SendSMS; external DLLNAME;
function GetBalance; external DLLNAME;
procedure SetDebug; external DLLNAME;
function GetUnSend; external DLLNAME;
function GetState; external DLLNAME;
procedure Uninit; external DLLNAME;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -