当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我用cfiledialog但是它会显示文件,也不能选择文件夹 有没有选择文件夹的对话框? ......
    摘要: 在tquery的sql中加入这句语句居然出错,怎么在access 2000中就不出错呢?错误为:"query1:field 15:20# is of an unknown type. ......


一个COM的返回值的问题

我用DELPHI写了一个COM,需要返回一个变体的数组,请问我怎么实现,能否给一定的代码实例!谢谢!

NO.1   作者: zhujianzhou

我看你最好使用一个输出的属性

NO.2   作者: dreamfan

up

NO.3   作者: ZXYSOSO

關注,我正在學習com

NO.4   作者: biggo

服务端  
  function   t   :   OleVariant;  
  var  
      v   :   OleVariant;  
  begin  
      v   :=   VarArrayCreate([0,2],varVariant);  
      v[0]   :=   1;  
      v[1]   :=   111;  
      v[2]   :=   1.121;  
      Result   :=   v;  
  end;  
   
  客户端  
  var  
      v   :   OleVariant;  
  begin  
      v   :   myCom.t;  
      showmessage(VartoStr(v[0]));  
      showmessage(VartoStr(v[1]));  
      showmessage(VartoStr(v[2]));

NO.5   作者: errorcode

正如楼上所说

NO.6   作者: chenjbjbjb

也可以使用类型库。

NO.7   作者: liuziran

example  
  COM:    
   
      aData   :=VarArrayCreate([0,HeadADOQ.FieldCount-1],varVariant);  
        for   I:=   0   to   HeadADOQ.FieldCount   do  
                aData[I]   :=HeadADOQ.Fields[I].Value;  
   
  Client(ISAPI):  
          DCOMLink.AppServer.GetHeadInfo(vSH,aData);  
            if   VarIsNull(aData)   then   ...  
            else        
              for   I   :=VarArrayLowBound(aData,1)   to   varArrayHighBound(aData,1)   do  
                  if   CompareStr(TagString,OnHeadInfo[I])=0   then  
                        ReplaceText   :=aData[I];

NO.8   作者: sensation

可以用VarArrayCreate来是olevariant转换成数组,也可以直接用  
  variant*   ,注意选in和out,in是传进的,out是传出的,函数的返回值只可以是HRESULT,但在代码里还是variant*


    摘要: 在rs.getfloat().tostring()获取decimal类型字段值后,太大的值回返回1.24e5等字符串,如何使起返回正常显示的字符串? 象rs.getbigdecimal().tostring()返回的那样? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE