From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA26193; Tue, 4 Jun 2002 18:28:46 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA26189 for ; Tue, 4 Jun 2002 18:28:45 +0200 (MET DST) Received: from grisu.bik-gmbh.de (grisu.bik-gmbh.de [194.233.237.82]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g54GSiL23480 for ; Tue, 4 Jun 2002 18:28:44 +0200 (MET DST) Received: from hars.de (prony.bik-gmbh.de [194.233.237.133]) by grisu.bik-gmbh.de (8.11.3/8.11.1) with ESMTP id g54GSi587074 for ; Tue, 4 Jun 2002 18:28:44 +0200 (CEST) (envelope-from florian@hars.de) Message-ID: <3CFCEAB6.5040204@hars.de> Date: Tue, 04 Jun 2002 18:28:38 +0200 From: Florian Hars User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.0rc3) Gecko/20020523 X-Accept-Language: de-de, en-us, en MIME-Version: 1.0 To: caml-list@inria.fr Subject: [Caml-list] CamlIDL documentation and COM issues Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk I am trying to write an interface to an existing C library and I intend to use CamlIDL for this task, but I am missing some more HOWTO-like documentation. The library uses a pattern that should be common enough to supported in CamlIDL (and explained in the hints on writing IDL files): there is a struct that is only of internal relavance, and there is an open and a close function that returns or frees a pointer to such a struct, and several functions that operate on such a handle: typedef struct { /* things */ } Foo; typedef Foo * FooHandle; FooHandle FooOpen(args...); int FooOperate(FooHandle fhdl, args...); void FooClose(FooHandle fhdl); Now all I need is a way to put this handle into a Caml variable (and, optionally, to call FooClose automatically whenever the handle runs out of scope). It looks like the [abstract] and [ptr] attributes, either alone or in combination, might be relevant for this task. But [ptr] requires the Com module, which I do not want to use. (OK, it is tiny under unix, but still... what happens if I ever recompile the program under windoze? Shouldn't the generally useful features for interfacing to C/C++ and the COM-specific stuff be somehow separated, like in a module Idl and another module Com? This would certainly help to reduce the prevailing confusion over the possible uses of CamlIDL. Or is it irrelevant for my problem?) An example for the use of errorcheck(fn) and a remark on the type of fn in errorcheck might be helpful, too. Oh, and shouldn't the example on page 24 of the Manual (1.0.4) read double time() quote(call, "_res=....; "); ^^^^^^ Or is "call" implicit if no ident is given in a quote in a function definition? Yours, Florian Hars. ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners