关于com如何使用接口的问题!!大富翁们,帮忙很急(100分)

X

XFL

Unregistered / Unconfirmed
GUEST, unregistred user!
没用过com 星期一交东西,别人做的com要我调,可是,他一定说com函数可以有多个返回值
int fn_serv_info (char * area_code, char *acc_nbr, char * serv_name,
char * serv_type, char * serv_state )

这就是函数的原型

传入参数
区号(area_code):7位string
电话号码(acc_nbr):16位string
传出参数
用户名称(serv_name):30位string
用户类型(serv_type):18位(计费类别)string
用户状态(serv_state):10位string
返回值:
0:正确;
其他:待定。

这是说明
帮忙了!!很急
 
var v:variant;
i:integer;
serv_name,serv_type,serv_state:pchar;
v:=createoleobject('project.objectname');
getmem(serv_name,100);
...
i:=v.fn_serv_info(pchar(area_code),pchar(acc_nbr),serv_name,serv_type,serv_state);
v:=unassigned;
freemem(serv_name)
祝好运
 
to 一生中最爱
谢谢
最主要的是
传出参数
用户名称(serv_name):30位string
用户类型(serv_type):18位(计费类别)string
用户状态(serv_state):10位string
我应该怎么才能得到传出的治

v:=unassigned;
freemem(serv_name)

什么意思??
 
var s:string;
...
i:=v.fn_serv_info(pchar(area_code),pchar(acc_nbr),serv_name,serv_type,serv_state);
s:=serv_name;
s中就是传出的值
v:=unassigned是释放建立的com对象
freemem(serv_name)是释放申请的内存,serv_name是pchar类型,在使用前最好
用getmem分配空间,用完后释放

 
接受答案了.
 
顶部