【发布时间】:2015-08-24 00:27:51
【问题描述】:
我注意到DWord 和QWord 值写入注册表时应该是有符号整数,而不是无符号整数。如果值为 UInt64 或 UInt32,此代码将引发异常:
registryKey.SetValue(name, value);
根据 MSDN DWORD 是一个 32 位无符号整数(范围:0 到 4294967295 十进制)https://msdn.microsoft.com/en-us/library/cc230318.aspx
所以,要将新的 DWORD 值写入注册表,我需要将其转换为有符号整数,如下所示:
UInt32 unsignedValue = (UInt32)someValue;
Int32 signedValue = (Int32)unsignedValue;
registryKey.SetValue(name, signedValue);
将无符号值传递给 SetValue 方法将引发异常。 是我遗漏了什么还是我智障了?
【问题讨论】: