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 QAA25050; Mon, 28 May 2001 16:55:28 +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 QAA25041 for ; Mon, 28 May 2001 16:55:27 +0200 (MET DST) Received: from relay.rinet.ru (relay.rinet.ru [195.54.192.35]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id f4SEtM906109 for ; Mon, 28 May 2001 16:55:26 +0200 (MET DST) Received: (from uucp@localhost) by relay.rinet.ru (8.9.3/8.9.3) with UUCP id SAA28561 for caml-list@inria.fr; Mon, 28 May 2001 18:55:18 +0400 (MSD) X-Envelope-To: caml-list@inria.fr Received: from dialin1.stormoff (DIMA) [192.168.0.129] by stormoff with esmtp (Exim 2.05 #1 (Debian)) id 154OMB-0003R3-00; Mon, 28 May 2001 18:50:55 +0400 X-Comment-To: Dmitry Bely To: caml-list@inria.fr Subject: Re: [Caml-list] ocamlopt and Windows DLL References: From: Dmitry Bely Date: 28 May 2001 18:53:49 +0400 In-Reply-To: Message-ID: User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Crater Lake) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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