[Ruby] Re[2]: [Ruby] Вызов глобальных ф-ий из класса в Си
Kachalov Anton
mouse at linux.ru.net
Sun Nov 17 15:40:46 MSK 2002
Eugene Scripnik пишет:
>Monday, November 11, 2002, 8:40:15 PM, you wrote:
>
>AB> On Mon, Nov 11, 2002 at 09:24:27PM +0300, Kachalov Anton wrote:
>
>
>>>mouse at lrn.ru пишет:
>>>
>>>
>>>
>>>>Как в Си вызвать глобальную ф-ию? rb_func_call() позволяет вызывать методы
>>>>для
>>>>каких-либо объектов,а как ему сказаьть,что я хочу Глобальную ф-ию
>>>>вызвать? rb_eval_string не подходит - нужна скорость
>>>>
>>>>
>>>Есть у кого-нить какие-нить мыслишки?
>>>
>>>
>AB> Не являются ли глобальные функции суть методы модуля Kernel?
>Не совсем, все _стандартные_ глобальные функции на самом деле функции
>Kernel'а и добавляются в toplevel object и являются его private
>методами. Все добавленные глобальные функции являются приватными
>singleton методами toplevel объекта, но в модуль Kernel они не
>добавляются. Поскольку эти методы приватные, то вызвать их
>можно исключительно не указывая ресивер (из Руби).
>Как это сделать на С даже не представляю.
>Единственное, что я накопал в исходниках, так это переменную
>ruby_top_self, которая содержит toplevel object.
>Возможно поможет rb_func_call(ruby_top_self, ...)?
>
>
>
не помогло ;-(
./freecraft.rb:31:in `func': undefined method `testRuby' for
#<Object:0x2ad2fa74> (NoMethodError)
Rgds,
Anton
--
ALTLinux Team
http://www.altlinux.ru
LRN Team
http://www.lrn.ru
FreeCraft Team
http://freecraft.sourceforge.net/
More information about the Ruby
mailing list