Вызов Dlls на Ruby (не Windows API) - PullRequest
0 голосов
/ 18 апреля 2011

Я нахожусь в среде Ruby, где я не могу загрузить расширения C, только чистый код ruby. Я не могу использовать RubyInline, FFI или Win32OLE, только один способ загрузить внешний код: Win32API. Но как я могу скомпилировать код C ++, который может потребоваться для ruby? Я пытался с этими кодами, но поднял ошибку:

test.cpp

static int add(int a, int b) // I tried without static too
{
  return a + b;
}

компилировать

g++ --shared test.cpp -o test.dll

main.rb

Win32API.new('test.dll', 'add', 'II', 'I').call(1, 2) # => should return 3

сообщение об ошибке

RunTimeError
GetProcAddress: add or addA

версия:

Ruby 1.8.1
GCC 4.5.2 (tdm-1)

1 Ответ

2 голосов
/ 18 апреля 2011

Вам необходимо использовать файл .DEF.Смотрите мой ответ на этот вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...