<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Hello everybody first off all i wanna thank you for this nice interface
to the .Net-Framework.<br>
<br>
Now to my problem:<br>
<br>
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. <br>
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.<br>
But if i use lisp and RDNZL to create an instance of the class and call
a function of instance that calls <u>itself </u>a function of the
ABBYY Interop-Assemble sometime the function call into the assembly
don't came back.<br>
And if i start the process from Lispworks again everything works fine.<br>
<br>
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 ???<br>
<br>
<br>
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?<br>
<br>
-> When it stucks always the first call to the Interop-Assembly
stucks, if this call don't stuck everything runs perfect.<br>
-> I also tried to call this Interop-Assembly directly with RDNZL
with the same result, it sometimes stucks.<br>
<br>
<br>
Thanks a bunch for your help,<br>
<br>
Eric<br>
<br>
(If there is something unclear concerning my bad English and/or bad
description i would be happy to describe it in detail)<br>
<br>
My System:<br>
<br>
-  Win XP<br>
-  LispWorks 5.1.1 Personal Edition<br>
-  RDNZL 0.12.2.<br>
-  Visual Studio 2008 Express Editions<br>
-  .Net-Framework 3.5<br>
<br>
<br>
Some Code:<br>
<br>
Unfortunately i can not provide an complete example or my full code,
but here are at least some snippets.<br>
Also there happens nothing special, so i think the problem is somewhere
else... and there is no exception coming<br>
back as if it is waiting or the call is not delivered.<br>
<br>
<br>
The function with starts the hole process in lisp:<br>
<br>
(defun OCR++FineReaderBildAuswerten  (Speicherort bild sprache
neuerSpeicherort ) <br>
     (RDNZL:rdnzl-handler-case<br>
      (let(dotNetList bilderAnzahl (ergebnis (list ) ))           <br>
           (<font color="#33cc00">OCR++FineReader-BilderPraeparieren</font>
(concatenate 'string Speicherort "\\" bild ) neuerSpeicherort) <font
 color="#ff0000"><<<---first Function to .Net see below</font><br>
           (setq bilderAnzahl (- (OCR++FineReader-BilderAnzahl) 1))<br>
           (loop for n from 0 to bilderAnzahl do<br>
                 (OCR++FineReader-BilderOeffen n)<br>
                 (OCR++FineReader-InhaltAnalysieren )<br>
                 (OCR++FineReader-InhaltAufbereiten  sprache  )<br>
                 (OCR++FineReader-Speichern neuerSpeicherort bild :frz
t  :txt t)<br>
                 (setq dotNetList
(OCR--FineReader-TextDatenStrukturLesen))<br>
                 (setq ergebnis (cons 
(ORC--FineReader-erstelle-verschachtelterListe-Text dotNetList)
ergebnis))<br>
                 (OCR--FineReader-DokumentenAnalyseSaeubern))<br>
           (RDNZL:enable-rdnzl-syntax)<br>
           (reverse ergebnis))           <br>
           ( "System.Exception" (e)<br>
                      (print (RDNZL:invoke e "ToString") )<br>
                      nil)<br>
           ))<br>
<br>
<br>
===============================================<br>
The first function which calls a function in the #Class:<br>
 <br>
(defun OCR++FineReader-BildPraeparierenUndOeffnen(bild)<br>
            (RDNZL:invoke fineref  "<font color="#33cc00">bildPraeparierenUndOeffnen</font>" 
bild ) )<br>
<br>
=============================================== <br>
The function in the C# Class which calls a function of the
Interop-Assembly:<br>
<br>
public Boolean <font color="#33cc00">bildPraeparierenUndOeffnen(String</font>
bildpfad)<br>
  {<br>
  Logger.logIT(this, " bildPraeparierenUndOeffnen: " + bildpfad, log); <br>
  bildInformation = pEngine.PrepareAndOpenImage(bildpfad,
bildBearbeitungsParameter, null, ref dokumentenInformation);<b><font
 color="#ff0000"><<< here it stucks</font></b><br>
  Logger.logIT(this, " bildPraeparierenUndOeffnen: ende", log); <br>
  return true;<br>
  }
</body>
</html>