В некоторых документах Win32API от Ruby имеет 'L'
и 'N'
, чтобы указать «число» ... и в некоторых документах 'L'
«длинный». Является ли 'N'
устаревшим, а не 'L'
таким же, как 'I'
? «Число» несколько не так специфично.В Win32API.new Ruby не является «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')
вместо более c ommon ['L', 'P', 'L', ...]
формат
hWnd
есть 'L'
и поэтому 'I'
тоже будет работать? (hWnd
- ручка для окна)
Булев параметр 'B'
и такой же, как у 'I'
?
Итак, в основном, мы можем использовать большинство вещей как 'I'
? Даже 'P'
должен быть 4-байтовым, поэтому 'I'
должен работать так же хорошо? Существует ли более формальная спецификация?
Update: теперь, когда я думаю больше о 'P'
, он на самом деле будет использовать объект класса String, рубин, и принять буферную содержание части и передать его в функцию C. Поэтому использование 'I'
, вероятно, не вызовет такого поведения. (пример: например, использование GetWindowText()
)
Я также видел в документе README в файле win32-api zip: 'Удалены прототипы 'N' и 'n'. Всегда используйте «L» для долгого времени. ' –