2010-06-28 12 views
0

J'ai construit une bibliothèque (très simple), que je peux appeler très bien à partir d'un autre programme C++.Ruby FFI sur MinGW

Mais cela ne fonctionnera pas lorsque j'essaye de faire en sorte que Ruby FFI l'associe. Il donne FFI::NotFoundError, dit qu'il ne peut pas trouver la fonction exportée dans la DLL.

Où les choses auraient-elles pu mal tourner? Ai-je besoin d'un traitement spécial lorsque je compile ma DLL en utilisant g ++? Je suis en train de le construire avec g++ -shared -o lib.dll libsrc.cpp. Je suis assez nouveau à Ruby, mais l'exemple de code pour FFI est très simple, et j'ai aussi du code qui fait des choses assez complexes de la DLL user32 à travers FFI. Donc je sais que ça fonctionne.

Une autre chose que je peux penser à essayer est de compiler mon code en utilisant Visual Studio dans l'espoir de créer une DLL plus "compatible", mais je veux m'en tenir à GCC.

Répondre