Lua Alien - Win32 API WaitForSingleObject函数中定义的变量

时间:2013-07-23 15:30:17

标签: winapi lua lua-alien

我正在使用Alien for Lua来引用Windows Kernel32.dll中的WaitForSingleObject function

我是Windows编程的新手,所以我的问题是关于WaitForSingleObject文档引用的以下#define d变量:

  

如果dwMilliseconds为 INFINITE ,则只有在发出对象信号时才会返回该函数。

什么是 INFINITE 值?我自然会认为它是-1,但我无法在任何地方找到它。

另外,使用下表,它提到了十六进制的返回值,但我很困惑为什么它们在最后一个数字后面有一个L字符。这可能就像将它投射到Long一样简单吗?

Chart

我问的原因是因为Lua使用Number data type,所以我不确定是否应该通过十六进制数字(0-F)或十进制数字(0-9)检查此返回值?< / p>

1 个答案:

答案 0 :(得分:2)

这个想法让我想到了打开一个C ++应用程序并打印出这些值,所以我做到了这一点:

#include <windows.h>
#include <process.h>
#include <iostream>

int main()
{
    std::cout << INFINITE;
    std::cout << WAIT_OBJECT_0;
    std::cout << WAIT_ABANDONED;
    std::cout << WAIT_TIMEOUT;
    std::cout << WAIT_FAILED;
    system("pause");
    return 0;
}
根据我的发现,最终的Lua结果是:

local INFINITE = 4294967295
local WAIT_OBJECT_0 = 0
local WAIT_ABANDONED = 128
local WAIT_TIMEOUT = 258
local WAIT_FAILED = 4294967295