2011-11-22 77 views
0

我试图计算密码有效期,而且大部分的示例代码是C#在VB.net中将ActiveDs.LargeInteger转换为Long?

一个样品有:

IADsLargeInteger largeInt; 
largeInt = (IADsLargeInteger) largeIntVal; 
myLong = (long)largeInt.HighPart << 32 | (uint)largeInt.LowPart; 

如果我尝试类似的东西在VB.net:

dim myLong as Long 
myLong = largeInt.HighPart << 32 Or largeInt.LowPart 

然后我似乎得到一个无效的值。我怎样才能在VB中获得类似的结果?

回答

0

根据this问题是因为VB.Net没有无符号整数类。

的解决方案是:

props = resultDE.Properties("pwdLastSet") 
Dim prop As ActiveDs.LargeInteger 
prop = props(0) 

Dim int64Value As Long 
Dim strTemp As String 
strTemp = "&H" + CStr(Hex(prop.HighPart)) + CStr(Hex(prop.LowPart)) 
int64Value = Val(strTemp)