Каковы параметры Ruby Win32API | Как передать нулевой указатель?

Я знаю следующее:

'L' - Долго'P' - указатель'I' - целое число'V' - Пустота

Моя проблема в том, что я не могу передать нулевой указатель при выполнении вызова API. Например.:['L', 'P', 'L'] -> api.call(0, nil, 0) :: ArgumentError: Null pointer given, Мой вопрос: есть ли еще типы параметров, о которых я не знаю, и что я должен сделать, чтобы передать нулевой указатель в качестве параметра метода?

Фон

Я искал в Интернете нативные примеры программирования на Ruby для приложений на основе WinForms. Я рассмотрел дополнение .NET к Ruby, известное как IronRuby, для простоты в кодировании (пытаясь избежать wxRuby, а также вентилятора .NET), но сначала я хочу сначала иметь возможность явно кодировать на чистом Ruby.

Теперь я успешно смог реализовать большинство протестированных мной адресов в объекте user32.dll, таких как:

api = Win32API.new('user32', 'MessageBox', ['L', 'P', 'P', 'L'], 'I')
# or
api = Win32API.new('user32', 'MessageBeep', ['L'], 'I')

..но я не могу выполнитьCreateWindow Или жеCreateWindowEx без нулевых параметров. Если это будет полезно, я нашел, как это сделать в PythonВот (под WinAPI).

Использование Win32API: msdn.microsoft.com/en-us/library/ff381397(v=VS.85).aspx

[РЕДАКТИРОВАТЬ]
Ну, я думаю, что, возможно, только что решил свою проблему с этой ссылкой(предупреждение: может содержать недопустимое содержание): [ссылка]

Я больше использовал этот форум в качестве ссылки и немного повозился с собой:
createwindow = Win32API.new("user32","CreateWindowEx",'lpplllllllll','l')
showwindow = Win32API.new('user32','ShowWindow',%w(l l),'l')

hWND = createwindow.call((0x00000100|0x00000200),"static", "Window Title",((0x4000000|0x80000000|0)|0x02000000),0,0,600,400,0,0,0,0)
showwindow(hWND, 1)

Единственное, что происходит после отображения «окна», это сбой ... и это могло произойти из-за некоторой неправильной обработки, но я рад, что заставил его работать (немного)! Просто надо разобраться с остальными ...

Ответы на вопрос(3)

Ваш ответ на вопрос