?? 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 + -