在某些文檔中,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