在某些文档中,Ruby的Win32API具有'L'
和'N'
来指定“数字”......并且在某些文档中,'L'
是“long”。是否'N'
已弃用,而不是'L'
实际上与'I'
相同? “数字”有些不那么具体。在Ruby的Win32API.new中,'L'不是'I','N'或'P'是什么?
在 http://rubyforge.org/docman/view.php/85/3463/API.html#M000001
没有指定一个布尔参数为'B'
或'I'
,只有返回值...
在 http://www.ruby-doc.org/stdlib/libdoc/Win32API/rdoc/classes/Win32/Registry/Error.html#M001622
有
Win32API.new('kernel32.dll', 'FormatMessageA', 'LPLLPLP', 'L')
而不是更常见['L', 'P', 'L', ...]
格式
hWnd
是'L'
因此'I'
会工作吗? (hWnd
是句柄窗口)
布尔参数是'B'
并且与'I'
相同?
所以基本上,我们可以使用大多数东西作为'I'
?即使是'P'
应该是一个4字节,所以'I'
应该工作?有更正式的规范吗?
更新:现在,我想更多的'P'
,它实际上将使用Ruby的String类对象,并采取内容缓冲区的一部分,它传递到C函数。所以使用'I'
可能不会触发这种行为。 (例如:如使用GetWindowText()
)
我还在win32-api zip文件的README文档中看到:'删除了'N'和'n'原型。现在长时间使用'L'。“ – 2010-07-26 02:39:47