2009-11-25 108 views
0

我是usis GetExitCodeProcess(processInfo.hProcess,out returnCode)作爲ap /在C#中調用以獲取進程的轉向代碼我開始使用CreateProcess - 一切正常...如何將INT轉換爲DWORD從GetExitCodeProcess返回代碼[C#]

這是代碼:

UInt32 returnCode = 0xFFFFFFFF;  // default 
GetExitCodeProcess(processInfo.hProcess, out returnCode); 

的問題是返回代碼本身...我發動DWORD返回碼的應用程序,例如,它返回0XB2100000但RETURNCODE具有2987393024(其是正確的INT轉換)。

現在,我想顯示(記錄到我的跟蹤文件)DWORD中的值(這是我們習慣的) - 無論如何,我可以做到這一點?

感謝,

回答

1

日誌中returnCode這樣的:

String.Format("0x{0:X8}", returnCode) 

returnCode.ToString("X8").Insert(0, "0x") 

這個問題也是這裏介紹:

c# convert int to hex and back again

1

看來,它只是必須被轉換爲十六進制的形式,這樣的:

returnCode.ToString("X8"); 

或這樣的:

Console.WriteLine("The error code was {0:X8}.", returnCode); 
0

甲DWORD在C#將是一個uint(UInt32的)。

0

DWORD和INT是相同的東西*。你想知道的是一個數字是以10爲底還是16爲底。但是,它們仍然是相同的數字。 32 === 0x20,它們是相同的,甚至不會自動轉換成海誓山盟。通常當你關心基地時,你真正想要的是按位操作(查看運營商&,|和〜)。

*是的,我知道DWORD是無符號的,INT是有符號的。