vb.net 的VarPtr
Dim inData1(0 To 8) As Byte
Dim inData2(0 To 8) As Byte
Dim plicb As Variant
Dim plica As Variant
plica = Array('-------省略
plicb = Array(’-----省略
Dim i As Long
For i = 0 To 8
inData1(i) = plica(i)
Next
For i = 0 To 8
inData2(i) = plicb(i)
Next
CanonOcx1.SetLicense VarPtr(inData2(0)), 9, VarPtr(inData1(0)), 9
‘调用过程
Public Function VarPtr(ByVal e As Object) As Integer
Dim GC As GCHandle = GCHandle.Alloc(e, GCHandleType.Pinned)
Dim GC2 As Integer = GC.AddrOfPinnedObject.ToInt32
GC.Free()
Return GC2
End Function
做完后可以读出地址为整数 但是还是用不了控件
请解惑一下 不胜感激
[解决办法]
CanonOcx1.SetLicense(System.Text.Encoding.Unicode.UTF8.GetString(inData2), 9, System.Text.Encoding.Unicode.UTF8.GetString(inData1), 9)
参数允许的话,试试看