为何把整个自定义结构体传递给动态链接库函数作参数时出错?(代码在贴内)
以下代码进行编译时总是弹出提示“只有定义在公共对象模块中用户定义类型和变体类型相互转换或传递给后期绑定功能”Dim Pais(52) As PaiType '定义了52个结构数组元素用作牌信息
Dim DllObj as Object '定义一个Dll动态链接库对象
Dim StrName as String
Private Type PaiType '定义一个结构体为PaiType
PaiZhi As Integer
PaiHua As Integer
Pai As Integer
End Type
Private Sub Form_Load()
StrName = "GameLan"
Shell ("regsvr32 " & App.Path & "\" & StrName & ".dll /s") '动态链接库链接
Set DllObj = CreateObject(StrName & ".GameClass")
……
……
……
Call DllObj.XiPaiGuoCheng(Pais) ’执行动态链接库的洗牌过程--实参为结构数组名(编译时代码停在此行的“Paisi”中)
End Sub
'动态链接库文件GameLan.Dll内的函数
Public Sub XiPaiGuoCheng(Pais_c() As PaiType) '定义洗牌过程--形参为区别实参在结构数名后加了“_c”
……
……
……
End Sub
'上述结构体如果只传递在当前窗体中的函数就可以通过编译并且能正常运行!