谁能帮我把这段c 翻译成delphi的100分(100分)

  • 主题发起人 向你学习
  • 开始时间

向你学习

Unregistered / Unconfirmed
GUEST, unregistred user!
#include <stdio.h>
#include <time.h>
#include "dpl_types.h"
#include "dpl_errno.h".;
#include "dpl_socket.h"
#include "cmppe_proto.h"
#include "api.h"
dpl_status_t login_value_set(cmppe_login *cl)
{
time_t timestamp;
time(&timestamp);
strcpy(cl->icp_id,"909410");
strcpy(cl->icp_auth,"9410");
cl->icp_bind_type = 2;
cl->if_version = 0x12;
cl->icp_timestamp = timestamp;
return DPL_SUCCESS;
}
dpl_status_t submit_value_set(cmppe_submit *cs)
{
char usr1[3][20] = {"13805001064","13800000000","13900000000"};
int j;
cmppe_submit_sm_init(cs);//初始化数据包(cmppe_submit*msg)
cmppe_submit_sm_set_shortmsg(cs, "TEST", 4);//设置提交请求的短消息内容(msg,short_msg,size)
cmppe_submit_sm_set_priority(cs, 0);//设置提交请求中优先级域的内容(msg,priority优先级<9)
for(j=0;j<3;j++){
cmppe_submit_sm_add_dst_addr(cs, usr1[j]);//向提交请求包中添加一个接收用户的手机号
}
cmppe_submit_sm_set_icp_id (cs, "909410");//设置障碍提交请求包中icp_id域值

return DPL_SUCCESS;
}

main()
{
dpl_status_t stat;
conn_desc conn;
cmppe_submit cs;
cmppe_login cl;
cmppe_packet cp;
int status;
int type;
int result;
int seq;
int j;
memset(&cs,0,sizeof(cmppe_submit));
memset(&cl,0,sizeof(cmppe_login));
memset(&cp,0,sizeof(cmppe_packet));
memset(&conn,0,sizeof(conn));
stat = cmpp_connect_to_ismg("134.130.51.68",7890,&conn);
if(stat != DPL_SUCCESS){
goto finished;
}
login_value_set(&cl);
stat = cmpp_login(&conn,&cl);
if(stat != DPL_SUCCESS){
goto finished;
}
stat = cmpp_recv(&conn,&cp,0);
if(stat != DPL_SUCCESS){
goto finished;
}
type = cp.pk_head.pk_cmd;
status = cp.pk_head.pk_stat;
seq = cp.pk_head.pk_seq;
result = cp.result;
printf("<ICP-TEST>[type=%08x][status=%03x][seq=%08x][result=%02x]/n",/
type,status,seq,result);
if((cp.result != 0) || (status != 0){
goto finished;
}
submit_value_set(&cs);
stat = cmpp_submit(&conn,&cs);
if(stat != DPL_SUCCESS){
goto finished;
}
RE_RECV_SUBMIT_RESP:
stat = cmpp_recv(&conn,&cp,0);
if(stat != DPL_SUCCESS){
goto finished;
}
type = cp.pk_head.pk_cmd;
status = cp.pk_head.pk_stat;
seq = cp.pk_head.pk_seq;
result = cp.result;
printf("<ICP-TEST>[type=%08x][status=%03x][seq=%08x][result=%02x]/n",/
type,status,seq,result);
if(type != 0x80000004){
goto RE_RECV_SUBMIT_RESP;
}
if((type == 0x80000004) &&
(status == 0)){
printf("/t[msg_id = %s]/n",
cp.pk_data.pk_submit_resp.msg_id);
if(cp.pk_data.pk_submit_resp.us_count > 0){
printf("/t[ERROR-LIST]: ");
for(j=0;j<cp.pk_data.pk_submit_resp.us_count;j++){
printf(" [index = %02x]--->[stat = %02x]",/
cp.pk_data.pk_submit_resp.us_user[j].index,/
cp.pk_data.pk_submit_resp.us_user[j].stat);
}
printf("/n");
}
}
/*接收来自于网关的MO消息的测试*/
while(1){
stat = cmpp_recv(&conn,&cp,1);
if(stat != DPL_SUCCESS){
goto finished;
}
type = cp.pk_head.pk_cmd;
status = cp.pk_head.pk_stat;
seq = cp.pk_head.pk_seq;
result = cp.result;
printf("<ICP-TEST>[type=%08x][status=%03x][seq=%08x][result=%02x]/n",/
type,status,seq,result);
if(type == 0x00000005){
if(cp.pk_data.pk_deliver.status_rpt == 1){
printf("/t[msg_id = %s]/n",
cp.pk_data.pk_deliver.pk_sm.sm_rpt.msg_id);

}else
{
printf("/t[short_msg == %s]/n",
cp.pk_data.pk_deliver.pk_sm.short_msg);
}
stat = cmpp_deliver_resp(&conn,cp.pk_head.pk_seq,cp.result);
if(stat != DPL_SUCCESS){
goto finished;
}
}
}
cmpp_logout(&conn);
finished:
cmpp_disconnect_from_ismg(&conn);
}
 
不完整啊,其中被引用的那么多头文件怎么办?上面这些代码直接译成Object Pascal的也用不了。
 
有点难度,加多点分可能就有人做了。
 
关键的代码都在自定义的几个头文件里!
你不把自定义的几个头文件的代码贴出来,怎么给你翻阿!
 
是不是头文件是c写的
引用他的程序也得用c写.[:(!]
 
翻译这个程序的工作量远远大于你的想像!不但要翻译上面各个以include "XXX.h"引用的
头文件,而且头文件中的代码只是全部工作量中很小的一部分,对个各个.h文件(stdio.h
和time.h除外)的实现,即.c文件中的内容才是程序的主要部分,除非程序的实现部分都
是做在DLL里面的了。
你所贴出来的这一部分代码估计只是整个程序的冰山一角,我看还是算了吧,学学C只有好
处没有坏处的。
 
我这个.c文件其实也差不多了没有多少,
他要引用的东西是给我们的一个api 接口在win下有一个dll
但我不知道怎么用。但也肯定是用c编的我现在想是不是.h是用c做的
是不是引用它的程序也得用c.谢谢
 
多人接受答案了。
 
顶部