首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net 的VarPtr解决方案

2012-03-31 
vb.net 的VarPtrDim inData1(0 To 8) As ByteDim inData2(0 To 8) As ByteDim plicb As VariantDim plicaA

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)
参数允许的话,试试看

热点排行