Ruby FFI на MinGW - PullRequest
       2

Ruby FFI на MinGW

0 голосов
/ 29 июня 2010

Я создал (очень простую) библиотеку, которую я могу назвать просто отлично из другой программы на C ++.

Но это не сработает, когда я пытаюсь заставить Ruby FFI связать его.Он дает FFI::NotFoundError, говорит, что не может найти функцию, экспортированную в DLL.

Где все могло пойти не так?Нужна ли особая обработка при компиляции моей DLL с использованием g ++?Я просто собираю его с g++ -shared -o lib.dll libsrc.cpp.

Я довольно новичок в Ruby, но пример кода для FFI очень прост, и у меня также есть код, который делает довольно сложные вещи из DLL user32 через FFI.Так что я знаю, что это работает.

Еще одна вещь, о которой я могу подумать, это попытаться скомпилировать мой код с использованием visual studio в надежде создать более «совместимую» DLL, но я хочу придерживаться GCC.

1 Ответ

0 голосов
/ 04 июля 2010

http://github.com/remogatto/ffi-inliner может помочь.

Обратите внимание, что вам нужно убедиться, что вы вызываете ваши методы как stdcall, если они определены таким образом.

http://groups.google.com/group/ruby-ffi/browse_thread/thread/e2df39cdfe96a3c7?fwc=1

Вы также можете опубликовать свою проблему в группе ruby ​​ffi google.

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