Преобразование ActiveDs.LargeInteger в Long в VB.net? - PullRequest
0 голосов
/ 22 ноября 2011

Я пытаюсь вычислить срок действия пароля, и большая часть кода примера находится на C #

Один образец имеет:

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?

1 Ответ

1 голос
/ 22 ноября 2011

Согласно это проблема в том, что 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...