Well /* * KLGetKeyboardLayoutCount() *** DEPRECATED *** * * Deprecated: * Use TISCreateInputSourceList API to create a list of input * sources that match specified properties. * * Summary: * Returns the number of keyboard layouts. * * Mac OS X threading: * Not thread safe * * Parameters: * * oCount: * On exit, the number of keyboard layouts * * Availability: * Mac OS X: in version 10.2 and later in Carbon.framework [32-bit only] but deprecated in 10.5 * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Non-Carbon CFM: not available */
That would imply you need to say module: 'Carbon.framework' If you look at the usage of FFI in Sophie, you'll find *lots* of examples http://www.opensophie.org/ just download the app run and tap "cmd-'.'" to get a debugger up. But I think there was an example in the FFI stuff once. Say: apicall: void 'GetMouse' (MacPoint) module:'Carbon.framework'> You can also set SqueakDebug to 1 in the Squeak VM's info.plist setting to get the VM to print lots more diagnostics info to the Console when it attempts to run for the entry point name . On 2010-05-05, at 2:10 PM, Mariano Martinez Peck wrote: > > > On Tue, May 4, 2010 at 4:46 PM, David Wilson <[email protected]> wrote: > Hi > > I'm new to Pharo (although I was a Smalltalk programmer in the 90's), and I'm > trying to use FFI to access an MacOs system function: > > > Hi and welcome! > > apiKLGetKeyboardLayoutCount > < cdecl: ulong 'KLGetKeyboardLayoutCount' (void) module: 'keyboards'> > ^ self externalCallFailed. > > I get an error "'Unable to find function address'" which seems to say the > OS-module "keyboards" can't be found. > > Exactly. That's the problem. > > I can't figure out what the address should be. > The function is defined here: > http://developer.apple.com/legacy/mac/library/documentation/Carbon/Reference/KeyboardLayoutServices/Reference/reference.html > (yes, it's deprecated, I have a very old mac runnning 10.4). > > > But you see the library in your computer, isn't it ? I mean, it is there, but > FFI doesn't find it ? > > > I'm not sure if I'm using FFI correctly, do I have to somehow include the > external library in the Pharo VM? > > No, you shouldn't need to do that. However, you can try to put them there > just to see if that's the problem. I think that at some point (depends on an > order) the library is searched in the same place where you are calling from. > So, yes, do a test, but just a test. It should work without doing that. > > How did you install FFI ? Which Pharo VM and image versions are you using ? > > Can anyone help? > > > I would like too, but I don't have such library. > > I developed a wrapper for a Clibrary called OpenDBX using FFI. In our > website, some people experimented similar problems. > Please take a look to the title "Problems with Mac OS:" of the following > link: > > http://www.squeakdbx.org/Compiling%20and%20installing%20OpenDBX > > I also cc'ed people that can help you. > > Cheers > > Mariano > > > I'm looked for FFI examples, but don't find anything helpful. > > David > > > _______________________________________________ > Pharo-users mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-users > -- =========================================================================== John M. McIntosh <[email protected]> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ===========================================================================
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
