[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
感恩 找到這篇太有用了,謝謝您。
回覆刪除