Jimmie did you look at JavaConnect? This is on our roadmap for Moose in December January. So that we can connect better to Java.
Stef On Nov 10, 2012, at 3:40 AM, Jimmie Houchin wrote: > On 11/9/2012 7:22 PM, Igor Stasenko wrote: >> On 9 November 2012 12:19, Jimmie Houchin <[email protected]> wrote: >>> The COM API is deprecated and no longer supported. Only the C++ API is what >>> is available for use from Pharo. >>> >>> >>> On 11/8/2012 11:31 PM, Igor Stasenko wrote: >>> >>> On 8 November 2012 23:25, Jimmie Houchin <[email protected]> wrote: >>> >>> On a second look at the API's documentation, the DLL is C++ not C. I don't >>> know, but that might have been evident by the requirement of implementing >>> interfaces. >>> >>> well, with C++ it is a bit worse than C: because C++ compilers use >>> name mangling for the function names. >>> Means that, if you will look for exported function 'abc()', you will >>> probably find it under different name, like >>> abc@nby_xrt >>> >>> >>> How does one go about discovering these names? >>> >> This is best what i found, read to end: >> >> https://www.ruby-forum.com/topic/173158 >>> apart from that, once you figure the exact correct name, you can go >>> and call that function. >>> >>> Things is a bit different if the exported function is a member of class. >>> >>> So, what i can say.. you can try and see if it rolls (or rocks).. and >>> if it not, then the best option would be to implement own wrapper >>> library (but this time in C). And then use that library from pharo. >>> >>> >>> Ok, then this is the tricky part because I have a lot of C++ classes which >>> are interfaces to be implemented and instances of those classes to be passed >>> into other instances of other classes in the DLL. >>> >>> An example from the documentation. >>> ''' >>> An instance of the class implementing IO2GSessionStatus interface must be >>> subscribed to the session object before calling IO2GSession::login method. >>> It is accomplished by calling IO2GSession::subscribeSessionStatus method. >>> For example, ... >>> ''' >>> >>> As it stands my options are to learn Clojure (which I am already in progress >>> of doing) in order to access the API via Java. Or to learn C/C++ and NB to >>> access the API from Pharo. >>> >> googling didn't gave me any examples how Clojure deals with C++... >> have a link? >> i suspect it is like others, generating wrapper C code to call C++ code. > > Clojure does not access the C++ code. It would access the Java library in > its .jar file. It has native access. The API is offered in three forms, Java, > .NET and C++. > > > > Jimmie >
