我在DLL中有一个公共类方法,它接受变体形式的MSHFlexGrid参数。
Public Sub PrintReport(ByVal gridToPrint as Variant)
我将参数指定为variant,以避免编译错误:
“私有对象模块不能在公共对象模块中使用 公共过程的参数或返回类型,作为公共数据 成员,或作为公共用户定义类型的字段“
我的主应用程序实例化此类的实例并调用PrintReport方法,传入MSHFlexGrid。
Dim clsPrint As PrintProject.clsPrint
Set clsPrint = New PrintProject.clsPrint
clsPrint.PrintReport gridToPrint
其中 gridToPrint 是我表单上MSHFlexGrid控件的名称。
这种逻辑已经存在多年,直到Windows 8.1出现。
Windows 8.1和Windows 10在调用PrintReport方法时生成类型不匹配错误。
还有其他人遇到过这种行为吗?
我原本认为这是一个环境问题,但是在运行Windows 8.1或Windows 10的所有安装中都会出现这种情况,而Windows 8及更低版本运行良好。
如果我没有正确地构建我的问题,请原谅我的无知。第一次海报,长期用户。
提前致谢!