<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Je me permets d'intervenir dans cette
      discussion, même si ce n'est pas le sujet principal.<br>
      Depuis de nombreuses années, je développe des pilotes de type
      bibliothèques dynamiques (dll de windows, so de linux)  pour des
      appareils et interfaces de mesure, et des logiciels pour utiliser
      ces pilotes. C'est disponible sur mon site
      <a class="moz-txt-link-freetext" href="http://sciencexp.free.fr">http://sciencexp.free.fr</a>.<br>
      Scilab ne peut pas utiliser directement ces pilotes, mais on peut
      faire un adaptateur (une dll spécifique de Scilab, qui est capable
      d'échanger avec les pilotes en question), voir <br>
      <a class="moz-txt-link-freetext" href="http://sciencexp.free.fr/sciencexp2011/documents/programmation/appilotes/appilotes_win_scilab.zip">http://sciencexp.free.fr/sciencexp2011/documents/programmation/appilotes/appilotes_win_scilab.zip</a> 
      <br>
      <br>
      En espérant que ça puisse être utile à quelqu'un<br>
      <br>
      Pierre Dieumegard<br>
      <br>
      La 01/08/2013 09:24, Thierry ROYANT skribis:<br>
    </div>
    <blockquote
      cite="mid:273112636.1932.1375341847828.JavaMail.www@wwinf1d18"
      type="cite">
      <p>Bonjour,</p>
      <p>Ok pour opérations sur des tableaux d'entiers.</p>
      <p>J'ai reconfiguré le prototype de la fonction AddTabint2 de la
        façon suivante (2 fonctions dans la bibliothèque) :</p>
      <p> </p>
      <p>#include "extcode.h"</p>
      <p>#pragma pack(push)</p>
      <p>#pragma pack(1)</p>
      <p> </p>
      <p>#ifdef __cplusplus</p>
      <p>extern "C" {</p>
      <p>#endif</p>
      <p>typedef struct {</p>
      <p><span class="Apple-tab-span" style="white-space: pre;"> </span>int32_t
        dimSize;</p>
      <p><span class="Apple-tab-span" style="white-space: pre;"> </span>int32_t
        CommandeNumRique[1];</p>
      <p><span class="Apple-tab-span" style="white-space: pre;"> </span>}
        Int32ArrayBase;</p>
      <p>typedef Int32ArrayBase **Int32Array;</p>
      <p> </p>
      <p>/*!</p>
      <p> * AddTabInt</p>
      <p> */</p>
      <p>void __cdecl AddTabInt(Int32Array *tabA, Int32Array *tabB, </p>
      <p><span class="Apple-tab-span" style="white-space: pre;"> </span>Int32Array
        *tabRes);</p>
      <p>/*!</p>
      <p> * AddTabInt2</p>
      <p> */</p>
      <p>void __cdecl AddTabInt2(int32_t tabA[], int32_t tabB[], int32_t
        tabRes[], </p>
      <p><span class="Apple-tab-span" style="white-space: pre;"> </span>int32_t
        *NBelts);</p>
      <p> </p>
      <p>long __cdecl LVDLLStatus(char *errStr, int errStrLen, void
        *module);</p>
      <p> </p>
      <p>/*</p>
      <p>* Memory Allocation/Resize/Deallocation APIs for type
        'Int32Array'</p>
      <p>*/</p>
      <p>Int32Array __cdecl AllocateInt32Array (int32 elmtCount);</p>
      <p>MgErr __cdecl ResizeInt32Array (Int32Array *hdlPtr, int32
        elmtCount);</p>
      <p>MgErr __cdecl DeAllocateInt32Array (Int32Array *hdlPtr);</p>
      <p> </p>
      <p>#ifdef __cplusplus</p>
      <p>} // extern "C"</p>
      <p>#endif</p>
      <p> </p>
      <p>#pragma pack(pop)</p>
      <p> </p>
      <p>Le code scilab pour l'utiliser :</p>
      <p>a=[12,25,24]</p>
      <p>b=[2,41,9]</p>
      <p>nbelts=3</p>
      <p>NomsFonctions=['AddTabInt','AddTabInt2']</p>
      <p>link('F:\Prog LabVIEW\Dll
        labview\dll2\SharedLibTabIntAdd.dll',NomsFonctions,'c')</p>
      <p>res =
        call("AddTabInt2",a,1,"i",b,2,"i",nbelts,4,"i","out",[1,3],3,"i")</p>
      <p>disp(res)</p>
      <p> </p>
      <p>résultat :</p>
      <p>-->exec('C:\Documents\Scilab\TestDllAddTabInt2.sce', -1)</p>
      <p> </p>
      <p>    14.    66.    33. </p>
      <p> </p>
      <p>Au niveau de LabVIEW il faut définir des pointeurs sur les
        données.</p>
      <p>(si quelqu'un est intéressé je peux faire un petit document sur
        cette configuration)</p>
      <p> </p>
      <p>reste à tester les tableaux de double.</p>
      <p>Cordialement</p>
      <p>TR</p>
      <p> </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
enseignement mailing list
<a class="moz-txt-link-abbreviated" href="mailto:enseignement@lists.scilab.org">enseignement@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="http://lists.scilab.org/mailman/listinfo/enseignement">http://lists.scilab.org/mailman/listinfo/enseignement</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>