2011-03-03 13 views
0

내 코드에서 레지스트리의 베네수엘라 표준 시간대를 가져와야합니다. 내가 원하는 건 "베네수엘라 표준시"키 아래의 지수 값입니다. 내가 다음 코드를 사용하여,하지만 제대로 작동하지 않는 것 같습니다. 반환 된 숫자는 "-2147483573"이지만 올바른 숫자는 "2147483723"입니다. 아무도 잘못된 것을 알아내는 데 도움이 될 수 있습니다.C# Registry.GetValue가 올바른 값을 가져올 수 없습니다.

enter image description here enter image description here

+0

이다. 해당 네임 스페이스와 관련된 오류입니까? –

답변

3

0x8000004B 정수보다 큰 값. 부호없는 정수로 처리해야합니다.

그래서 :

var t = subKey.GetValue("Index"); 
uint ut = (uint)t; 

그리고 ut.ToString()을.

업데이트 된 예제는

int t = -2147483573; // Simulates your call to subKey.GetValue 
uint ut = (uint)t; 
string s = ut.ToString(); 
Console.WriteLine(s); 

출력은 레지스트리 Microsoft.Win32에 2147483723.

+0

안녕하세요 짐. 나는 디버그했다. 변수 t는 실행시 "-2147483573"입니다. –

+0

예, 오버플로로 인해 잘못 될 수 있지만 ut이 해결합니다. –

+0

나는 노력했다. t는 "-2147483573"입니다. throw out 지정된 캐스트가 유효하지 않습니다. –

관련 문제