If "extern" in C works when linked by plgc, I don't even need to pass the pointer. I'll try it.
Thanks, John Daniel Diaz-3 wrote: > > Hi John, > > The simplest way to pass pointers across Prolog and C is to store them > into a global array t[] at index i and pass i as a Prolog integer. > Obviously you can also directly store the structure in the array (this > could avoid a malloc/free for the struct, but requires more memory if the > array is large). The Prolog code receives an integer (which it does not > use) and passes it back to another C code which recover i and uses t[i]. > > Did I miss something ? > > Daniel > > > Le 15 déc. 2012 à 22:05, mcculloch <[email protected]> a écrit : > >> I've looked into various prologs and have decided Gnu Prolog is the >> easiest >> to interface to other systems via C routines. However, there doesn't >> seem >> to be a good way to pass C struct pointers back to prolog for use by >> other >> foreign predicate calls implemented in C. I think now maybe that might >> not >> be a good idea anyway. >> >> The C interface I want to use creates a structure to represent a >> connection >> to a foreign system, and then requires this structure to subsequently >> access >> the system. (For those who are curious, the system is mongoDB). >> >> One option is to create this structure, use it and destroy it every time >> a >> predicate is called that uses that system. Obviously, this is very >> inefficient. The other option is to provide a predicate that returns the >> connection structure back to prolog to provide to other predicates, but >> this >> is exactly what I can't figure out how to do in gprolog. >> >> Any ideas would be greatly appreciated, and of course, any code that I >> develop to completion will be shared. >> >> John >> >> >> Sorry this ended up in Bugs where it doesn't belong. I'll try and figure >> out how to move it. >> >> >> -- >> View this message in context: >> http://old.nabble.com/C-Interface-Issue-tp34801402p34801402.html >> Sent from the Gnu - Prolog - Bugs mailing list archive at Nabble.com. >> >> >> _______________________________________________ >> Bug-prolog mailing list >> [email protected] >> https://lists.gnu.org/mailman/listinfo/bug-prolog >> >> -- >> Ce message a ete verifie par MailScanner >> pour des virus ou des polluriels et rien de >> suspect n'a ete trouve. >> > > > -- > Ce message a ete verifie par MailScanner > pour des virus ou des polluriels et rien de > suspect n'a ete trouve. > > > _______________________________________________ > Bug-prolog mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/bug-prolog > > -- View this message in context: http://old.nabble.com/C-Interface-Issue-tp34801402p34803191.html Sent from the Gnu - Prolog - Bugs mailing list archive at Nabble.com. _______________________________________________ Bug-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-prolog
