Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Florian Hars <florian@hars.de>
To: caml-list@inria.fr
Subject: [Caml-list] CamlIDL documentation and COM issues
Date: Tue, 04 Jun 2002 18:28:38 +0200	[thread overview]
Message-ID: <3CFCEAB6.5040204@hars.de> (raw)

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


             reply	other threads:[~2002-06-04 16:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-04 16:28 Florian Hars [this message]
2002-06-04 17:23 ` Dmitry Bely
2002-06-07 13:46   ` Florian Hars
2002-06-08 19:16     ` Dmitry Bely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3CFCEAB6.5040204@hars.de \
    --to=florian@hars.de \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox