热情软件屋

 

如何调用一个带有可选参数


编号:QA003840
建立日期: 2001年2月5日 最后修改日期:2001年2月5日
所属类别:

abourabour:
    在VC++6.0中关于运用OLE AUTOMATION 读取EXCEL的工作簿。
    我在VC++6.0中用OLE AUTOMATION对EXCEL 2000的文件进行操作,用到WORKBOOKS对象的Open方法,目的是能够打开EXCEL的工作簿文件,对其进行处理. 但Open方法的参数太多,而VC要求这些参数都须赋值,但我却不知如何设置这些参数。希望您不吝赐教。
     workbooks的Open方法的原型为:
    
     //Open的函数原型.
     //Open(LPCTSTR Filename, const VARIANT& UpdateLinks, const VARIANT& ReadOnly, const VARIANT& Format,
     //const VARIANT& Password, const VARIANT& WriteResPassword, const VARIANT& IgnoreReadOnlyRecommended,
     //const VARIANT& Origin, const VARIANT& Delimiter, const VARIANT& Editable, const VARIANT& Notify,
     //const VARIANT& Converter, const VARIANT& AddToMru)
    
     workbook = workbooks.Open("C:\\My documents\\e.xls",);
     workbook = workbooks.Open("C:\\My Documents\\e.xls",COleVariant(TRUE),COL
    
     workbook=workbooks.Open("C:\\My Documents\\e.xls",COleVariant((BYTE) 0),
     COleVariant((BYTE)0), (COleVariant)((BYTE)-4143), (COleVariant)(LPCTSTR)"",
     (COleVariant)(LPCTSTR)"", (COleVariant)((BYTE) 0),
     (COleVariant)(BYTE) 0, (COleVariant)((BYTE) 0),(COleVariant)((BYTE) 0),
     (COleVariant)(BYTE)0, (COleVariant)(BYTE)0,(COleVariant)(LPCTSTR)(BYTE)0 );
     /* workbooks.Open()的参数很多,而我只希望能打开并操作一个文件, 除了文件名外,其它
     使我无可奈何... */

回答:

    你可以这样:
     VARIANT varOpt;
     varOpt.vt = VT_ERROR;
     varOpt.scode = DISP_E_PARAMNOTFOUND;
    然后把varOpt作为可选参数传递给Open方法。这实际就是VB在幕后做的事。不过VC++不支持VB的命名参数调用。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio