本文整理汇总了C#中Microsoft.VisualStudio.Debugger.DkmProcess.Is64Bit方法的典型用法代码示例。如果您正苦于以下问题:C# DkmProcess.Is64Bit方法的具体用法?C# DkmProcess.Is64Bit怎么用?C# DkmProcess.Is64Bit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.VisualStudio.Debugger.DkmProcess
的用法示例。
在下文中一共展示了DkmProcess.Is64Bit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create
public static PyLongObject Create(DkmProcess process, BigInteger value) {
var allocator = process.GetDataItem<PyObjectAllocator>();
Debug.Assert(allocator != null);
var bitsInDigit = process.Is64Bit() ? 30 : 15;
var bytesInDigit = process.Is64Bit() ? 4 : 2;
var absValue = BigInteger.Abs(value);
long numDigits = 0;
for (var t = absValue; t != 0; ) {
++numDigits;
t >>= bitsInDigit;
}
var result = allocator.Allocate<PyLongObject>(numDigits * bytesInDigit);
if (value == 0) {
result.ob_size.Write(0);
} else if (value > 0) {
result.ob_size.Write(numDigits);
} else if (value < 0) {
result.ob_size.Write(-numDigits);
}
if (bitsInDigit == 15) {
for (var digitPtr = new UInt16Proxy(process, result.ob_digit.Address); absValue != 0; digitPtr = digitPtr.GetAdjacentProxy(1)) {
digitPtr.Write((ushort)(absValue % (1 << bitsInDigit)));
absValue >>= bitsInDigit;
}
} else {
for (var digitPtr = new UInt32Proxy(process, result.ob_digit.Address); absValue != 0; digitPtr = digitPtr.GetAdjacentProxy(1)) {
digitPtr.Write((uint)(absValue % (1 << bitsInDigit)));
absValue >>= bitsInDigit;
}
}
return result;
}