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
next 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