You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FoxPro中向ActiveX控件参数传递Null值

在FoxPro中向ActiveX控件方法传递Null字符串参数的问题

1. 注册ActiveX控件

执行以下命令注册DLL:

cd \windows\syswow64
regsvr32 "C:\mapp\mycontrol.dll"

2. 在FoxPro中创建控件对象

ofiscalprinter=CREATEOBJECT('mycontrol.Service.1')

3. 方法签名

命令窗口智能提示显示AX_SetAddInfoExt方法签名:

AX_SetAddInfoExt( aStatus as Number @, 
    opts as Number, 
    RegistrationNo as String,
    DocumentNumber as String, 
    OtherDocumentNumber as String ) as Number

4. 传递Null的尝试及错误

尝试直接传递Null或类型转换的Null

astatus=0

ofiscalprinter.AX_SetAddInfoExt(@astatus,1,.null., .null., .null.)
ofiscalprinter.AX_SetAddInfoExt(@astatus,1,CAST(NULL as C(1) null), CAST(NULL as C(1)  null), CAST(NULL as C(1)  null))

抛出错误:

OLE error code 0x80020005: Type mismatch.

尝试空字符串、CHR(0)等替代值

ofiscalprinter.AX_SetAddInfoExt(@astatus,1,CHR(0), CHR(0), CHR(0) )
ofiscalprinter.AX_SetAddInfoExt(@astatus,1,0, 0, 0)
ofiscalprinter.AX_SetAddInfoExt(@astatus,1,'', '', '' )
ofiscalprinter.AX_SetAddInfoExt(@astatus,1,"", "", "" )
ofiscalprinter.AX_SetAddInfoExt(@astatus,1, [], [], [] )
ofiscalprinter.AX_SetAddInfoExt(@astatus,1,'1', '2', '3' )

抛出错误:

OLE error code 0x80004001: Not implemented.

问题需求

推测"Not implemented"错误是因为方法要求最后一个或两个参数必须为Null,而非Null的字符串参数可正常传递。现需解决:

  • 如何在FoxPro中正确向该方法的字符串参数传递Null值?
  • 是否可以通过FoxPro .NET wrapper从.NET调用该方法来绕过这个问题?

内容的提问来源于stack exchange,提问作者Andrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:27:06