[VB6]only user-defined types defined in public object modules can be coerced to or from a variant or passed to late-bound functions
自定義Type類型於module中, 無法傳入function/sub函數
因user-define type無法與variant相容
下面為error code
Line 19, UC51宣告為DRIVER_INFO, 傳入IsEmptyArray()的source為Variant-type
兩種type無法強制轉換
只能將IsEmptyArray()的source宣告為REGISTER-type
但導致IsEmptyArray()只能接受REGISTER-type, 無法接受其他data type
因user-define type無法與variant相容
下面為error code
Line 19, UC51宣告為DRIVER_INFO, 傳入IsEmptyArray()的source為Variant-type
兩種type無法強制轉換
只能將IsEmptyArray()的source宣告為REGISTER-type
但導致IsEmptyArray()只能接受REGISTER-type, 無法接受其他data type
Option Explicit
Private Type REGISTER
name As String
addr As Byte
bank As Integer
End Type
Type DRIVER_INFO
strID As String
reg() As REGISTER
End Type
Sub main()
Dim UC51 As DRIVER_INFO
Dim tmpBuf() As String
Debug.Print IsEmptyArray(tmpBuf)
Debug.Print IsEmptyArray(UC51.reg) ' error here
End Sub
Function IsEmptyArray(source As Variant) As Boolean
On Error GoTo ERROR_HANDLER
If UBound(source) >= 0 Then
Exit Function
End If
ERROR_HANDLER:
IsEmptyArray = True
End Function
感恩 找到這篇太有用了,謝謝您。
回覆刪除