Browse thread
[Caml-list] ocamlopt and Windows DLL
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Dmitry Bely <dbely@m...> |
| Subject: | Re: [Caml-list] ocamlopt and Windows DLL |
1. Just another problem with ocamlopt and DLL: if unhandled exception occuirs
in my COM method, ocaml code terminanes inside callbackN_exn() with
"Fatal error: uncaught exception" instead of returning the appropriate
result indicating the exception (as byte compiled code does):
[--- cut ---]
HRESULT STDMETHODCALLTYPE camlidl_config_IConfig_load_callback(
struct IConfig * this,
/* in */ char *file)
{
value _varg[2] = { 0, 0, };
value _vres;
static value _vlabel = 0;
HRESULT _res;
Begin_roots_block(_varg, 2)
_varg[0] = ((struct camlidl_intf *) this)->caml_object;
_varg[1] = copy_string(file);
if (_vlabel == 0) _vlabel = camlidl_lookup_method("load");
End_roots();
_vres = callbackN_exn(Lookup(_varg[0], _vlabel), 2, _varg);
^^^^ in case of exception dies inside
if (Is_exception_result(_vres))
return camlidl_result_exception("config.IConfig::load", Extract_exception(_vres));
_res = S_OK;
return _res;
}
[--- cut ---]
Is this the expected behavior or just a bug?
2. (camlidl related question) I cannot create method returning the string
value. I've tried
[--- cut ---]
[
object,
pointer_default(ref)
]
interface ITest: IUnknown
{
HRESULT getString( [out] int* len, [out,length_is(*len)] char* val );
}
[--- cut ---]
but camlidl says
[--- cut ---]
test.idl
test.idl, function ITest::getString: Out parameter `val' must be a pointer
[--- cut ---]
Looks like just another camlidl bug. I even tried
HRESULT getString( [out,length_is(32)] char* val );
-- exactly the same result.
BTW, whom should I inform about camlidl problems/bugs? Is there any
bug-tracking database or so?
Hope to hear from you soon,
Dmitry
-------------------
To unsubscribe, mail caml-list-request@inria.fr. Archives: http://caml.inria.fr