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

📄 vc»

📁 短信系统
💻
字号:
SMS客户程序:指需要调用SMSCLIENT.DLL中的函数来收发短消息的程序。
SMS服务程序: 指提供短消息服务的程序。

SMS客户程序通过引入SMSCLIENT.DLL  中的4个函数,来获得短消息收发能力

int  InitConnect(char *hostname);
功能:初始化SMS客户程序与SMS服务程序的连接
参数说明:hostname--指运行SMS服务程序的计算机的网络标识
返回:-1--失败   0--成功

int  SendMsg(char *SCA,char *DA,char *UD);
功能:发送一条短消息(实际上是提交一条消息给SMS服务程序,由SMS服务程序发出去)
参数说明:SCA--短消息中心号码(如成都移动就是:"13800280500")
          DA--接收方手机号码(如"13980711226")
          UD--消息内容(如"你好!");
返回:-1:提交给SMS服务程序失败
       0:提交给SMS服务程序成功

int  QueryMsg();
功能:查询SMS服务程序
参数说明:无
返回:-1--查询失败,SMS服务程序无响应。
       0--查询成功,SMS服务程序端没有收到的消息。
       N(1,2,...)--查询成功,SMS服务程序有N条收到的消息。

char *ReadMsg();
功能:读取一条消息
参数说明:无
返回:""--读取失败,SMS服务程序无响应
      "EMPTY"--读取成功,但SMS服务程序内没有收到的消息。
      "OA:..."--读取成功,而且SMS服务程序有收到的消息。 
      具体格式
          "OA:发送方号码 TIME:接收到该消息的时间  UD:消息内容"

在VC中的使用示例:

首先在欲调用DLL函数的cpp文件前部先声明函数指针,定义函数类型:

typedef int (* _INITCONNECT)(char *hostname); 
typedef int (* _SENDMSG)(char *SCA,char *DA,char *UD); 
typedef int (* _QUERYMSG)();
typedef char * (* _READMSG)();


然后定义如下变量∶

HINSTANCE hLibrary;

_INITCONNECT InitConnect;
_SENDMSG SendMsg;
_QUERYMSG   QueryMsg;
_READMSG ReadMsg;

在调用DLL处加入如下语句进行DLL装载: 

int i;
char *s;

//首先装载DLL库
hLibrary=LoadLibrary("SMSCLIENT.dll");

//函数定位
InitConnect=(_INITCONNECT)GetProcAddress(hLibrary,"InitConnect");
SendMsg=(_SENDMSG)GetProcAddress(hLibrary,"SendMsg");
QueryMsg=(_QUERYMSG)GetProcAddress(hLibrary,"QueryMsg");
ReadMsg=(_READMSG)GetProcAddress(hLibrary,"ReadMsg");

//在程序启动后,应当进行初始化连接操作:
r=(*InitConnect)("xtpad"); //xtpad是运行sms服务程序的计算机网络名称,这里是举例。
if(r==-1){
  MessageBox("","初始化连接失败:SMS服务器没有响应",MB_OK);
  return;
}

//需要发送消息时:
   r=SendMsg("13800280500","13980711226","你好!");
   if(r==-1){MessageBox("","消息发送失败:SMS服务器没有响应",MB_OK);return;}
   if(r==0) {MessageBox("","消息发送成功!",MB_OK);}

//查询SMS服务程序中有几条未读取的消息:
   r=QueryMsg();
   if (r==-1) {MessageBox("","消息查询失败:SMS服务器没有响应",MB_OK);}
   if (r==0) {MessageBox("","消息查询成功:SMS服务器没有未读消息",MB_OK);}
   if (r>0)  {
     sprintf(tmpbuf,"消息查询成功:SMS服务器中有 %d 条信息",r);
     MessageBox("",tmpbuf,MB_OK);
   }
   
//读取一条消息
   s=ReadMsg();
   if (strlen(s)==0){ MessageBox("","消息读取失败::SMS服务器没有响应",MB_OK);
   else if strcmp(str,"EMPTY")==0)  MessageBox("","消息读取成功:SMS服务器中没有消息",MB_OK);
   else MessageBox("读到一条消息:",str,MB_OK);  (注:每读取到一条消息,成功SMS服务器中的消息就会减少一条)

.....


//程序在退出时,应当释放动态库
FreeLibrary(hLibrary); 



⌨️ 快捷键说明

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