我正在使用其他人编写的一些Visual Basic for Applications(VB 6.3)代码,他们写道:
WaitForSingleObject SEI.hProcess, -1
它出现的过程应该在文本框中返回一些数据;有时它没有返回任何东西,我认为这是因为这,可能是因为它是它的超时。该代码是否与:
相同WaitForSingleObject SEI.hProcess, INFINITE
???
感谢您的帮助。
答案 0 :(得分:4)
WaitForSingleObject的超时实际上是DWORD
,这是无符号 32位整数。 INFINITE
定义为0xFFFFFFFF
,但-1映射到无符号类型换行,并在大多数整数表示中成为此值。
该代码是否与:
相同
有效,是的。
答案 1 :(得分:0)
因此,基本上您的问题会转化为WaitForSingleObject SEI.hProcess, -1
和WaitForSingleObject SEI.hProcess, INFINITE
是否相同?
正如里德的回答所说,是的,它们是相同的,WaitForSingleObject SEI.hProcess, -3999
也是如此。基本上,任何负数都会环绕并变为可用的最大无符号整数,恰好是INFINITE
的值。
现在,这是否意味着您应该使用其中两个。没有。您应该始终使用已记录的版本,否则C ++非常有名,因为未记录的功能具有未定义的行为。