[rdnzl-devel] Problems with Interop calls

Edi Weitz edi at agharta.de
Sun Dec 27 21:49:19 UTC 2009


I'm sorry that nobody was able to help here, but just out of
curiosity: Did you ever solve the problem?


On Tue, Mar 10, 2009 at 8:06 AM, Eric <den_er at gmx.de> wrote:
> Hello everybody first off all i wanna thank you for this nice interface to
> the .Net-Framework.
>
> Now to my problem:
>
> I'm using RDNZL to control to ORC-Systems via .Net, my problem is that one
> OCR (tesseract) is working fine with it because it is possible to compile it
> with Microsoft Visual Studio(no problem at all). The other OCR-System ABBYY
> FineReader consits of DLL for which  ABBYY  provides  an  Interop-Assembly
> to communicate with it directly from the .Net-Framework.
> For controlling FineReader im using a C# Klasse (as an mediator in a DLL)
> which does futher action and intraktion with the OCR-System. If i use this
> Class direktly with a console-application compield in the .net-framework
> everything is fine.
> But if i use lisp and RDNZL to create an instance of the class and call a
> function of instance that calls itself a function of the ABBYY
> Interop-Assemble sometime the function call into the assembly don't came
> back.
> And if i start the process from Lispworks again everything works fine.
>
> Normally i would say it has nothing to do with RDNZL, but maybe it has some
> effects on the .Net-Framework which make it reacted different ???
>
>
> So my question: Has someone experience with such a problem or does some know
> what i can do to find a workaround for this problem?
>
> -> When it stucks always the first call to the Interop-Assembly stucks, if
> this call don't stuck everything runs perfect.
> -> I also tried to call this Interop-Assembly directly with RDNZL with the
> same result, it sometimes stucks.
>
>
> Thanks a bunch for your help,
>
> Eric
>
> (If there is something unclear concerning my bad English and/or bad
> description i would be happy to describe it in detail)
>
> My System:
>
> -  Win XP
> -  LispWorks 5.1.1 Personal Edition
> -  RDNZL 0.12.2.
> -  Visual Studio 2008 Express Editions
> -  .Net-Framework 3.5
>
>
> Some Code:
>
> Unfortunately i can not provide an complete example or my full code, but
> here are at least some snippets.
> Also there happens nothing special, so i think the problem is somewhere
> else... and there is no exception coming
> back as if it is waiting or the call is not delivered.
>
>
> The function with starts the hole process in lisp:
>
> (defun OCR++FineReaderBildAuswerten  (Speicherort bild sprache
> neuerSpeicherort )
>      (RDNZL:rdnzl-handler-case
>       (let(dotNetList bilderAnzahl (ergebnis (list ) ))
>            (OCR++FineReader-BilderPraeparieren (concatenate 'string
> Speicherort "\\" bild ) neuerSpeicherort) <<<---first Function to .Net see
> below
>            (setq bilderAnzahl (- (OCR++FineReader-BilderAnzahl) 1))
>            (loop for n from 0 to bilderAnzahl do
>                  (OCR++FineReader-BilderOeffen n)
>                  (OCR++FineReader-InhaltAnalysieren )
>                  (OCR++FineReader-InhaltAufbereiten  sprache  )
>                  (OCR++FineReader-Speichern neuerSpeicherort bild :frz t
> :txt t)
>                  (setq dotNetList (OCR--FineReader-TextDatenStrukturLesen))
>                  (setq ergebnis (cons
> (ORC--FineReader-erstelle-verschachtelterListe-Text dotNetList) ergebnis))
>                  (OCR--FineReader-DokumentenAnalyseSaeubern))
>            (RDNZL:enable-rdnzl-syntax)
>            (reverse ergebnis))
>            ( "System.Exception" (e)
>                       (print (RDNZL:invoke e "ToString") )
>                       nil)
>            ))
>
>
> ===============================================
> The first function which calls a function in the #Class:
>
> (defun OCR++FineReader-BildPraeparierenUndOeffnen(bild)
>             (RDNZL:invoke fineref  "bildPraeparierenUndOeffnen"  bild ) )
>
> ===============================================
> The function in the C# Class which calls a function of the Interop-Assembly:
>
> public Boolean bildPraeparierenUndOeffnen(String bildpfad)
>   {
>   Logger.logIT(this, " bildPraeparierenUndOeffnen: " + bildpfad, log);
>   bildInformation = pEngine.PrepareAndOpenImage(bildpfad,
> bildBearbeitungsParameter, null, ref dokumentenInformation);<<< here it
> stucks
>   Logger.logIT(this, " bildPraeparierenUndOeffnen: ende", log);
>   return true;
>   }
> _______________________________________________
> rdnzl-devel mailing list
> rdnzl-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/rdnzl-devel
>
>




More information about the rdnzl-devel mailing list