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
===========================================================================




Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to