俺是这样写的:
procedure TForm1.Button3Click(Sender: TObject);
var
UserData : String; //SM Content
byMsgID : Byte;
UDLen : LongInt;
iRet : Integer;
SM_ID : LongInt;
FCS : Byte;
DestAddress
Char;
schedule, expire
Char;
begin
IFInitInterface(5,1,'211.139.140.200 7890 5000');
Login_R('*****','******');
iRet := SubmitAExEx(
2, //源地址号码类型
1, //源地址编码方案
'020088', //源地址
2, //目的地址号码类型
1, //目的地址编码方案
'13711713321', //目的地址,最多支持100个目的地址
0, //SM优先级
0, //当源地址和目的地址相同时,是否替换存在的短消息。
0, //回应路径
0, //是否需要状态报告
0, //消息索引
8, //数据编码方案
0, //协议类型
'2003/06/26 17:44:00', //定时 char[MAX_TIMESTAMP_LEN]
'2003/06/27 17:44:00', //超时时间 char[MAX_TIMESTAMP_LEN]
0, //缺省短消息的信息码,国标定义的缺省短消息的个数为100条
0, //1表示UD为一个结构,0表示缺省
4, //表示UD的长度
'test',//用户信息,短消息正文
'icp', //业务子类型
@byMsgID, //MAX_MSG_ID,CMPP的字段,消息ID
1, //相同Msg_id的消息总条数,从1开始
1, //相同Msg_id的消息序号,从1开始
0, //信息级别
1, //计费用户类型字段byFeeUserType,0:对目的终端MSISDN计费;1:对源终端MSISDN计费;2:对SP计费;3:表示本字段无效
'spid', //MAX_SPID_LEN,信息内容来源
'01', //MAX_FEE_TYPE_LEN,资费类别sFeeType
'', //MAX_ADDR_LEN,被计费用户号码
'11', //MAX_FEE_CODE_LEN,资费代码
1, //接收消息的用户数量
'020088', //接收业务的MSISDN号码,最多100个
@SM_ID, //返回:短消息ID
@FCS); //返回:失败原因
caption:=inttostr(iRet);
end;
登陆都成功了,就是发送就出现什么30373300什么的dll调用错误。
函数申明如下:
function SubmitAExEx(OrgTON: Byte;
OrgNPI: Byte;
const OrgAddr: PChar;
DestTON: Byte;
DestNPI: Byte;
const DestAddr: PChar;
PRI: Byte;
RD: Byte;
RP: Byte;
SRR: Byte;
MR: Byte;
DCS: Byte;
PID: Byte;
const Schedule: PChar;
const Expire: PChar;
Default_ID: LongInt;
UDHI: Byte;
UDLen: LongInt;
const UserData: PChar;
const sServiceType: PChar;
byMsgID: PByte;
byPKTotal: Byte;
byPKNumber: Byte;
byMsglevel: Byte;
byFeeUserType: Byte;
const sSPID: PChar;
const sFeeType: PChar;
const sFeeAddr: PChar;
const sFeeCode: PChar;
byUserNum: Byte;
const sDestAddrs: PChar;
SM_ID: PLongInt;
FCS: PByte ): Integer stdcall; external 'SMEIDll.dll' Name 'SubmitAExEx';