> It is too much imo.. > Clojure->java -> c++ > > i would just write C++ code
I was not talking about calling clojure code but if the library is exposed in java. Stef > > On 10 November 2012 05:30, Stéphane Ducasse <[email protected]> wrote: >> 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 >>> >> >> > > > > -- > Best regards, > Igor Stasenko. >
