2009-11-25 109 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是有符号的。