It is too much imo.. Clojure->java -> c++ i would just write C++ code
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.
