[Enseignement] Dll acquisition (DAQ) labview -> scilab

Thierry ROYANT thierry.royant at orange.fr
Mer 31 Juil 22:43:03 CEST 2013


Bonsoir
 
ceci concerne la suite de mon développement Dll de LabVIEW vers scilab.

je souhaite maintenant travailler avec des tableaux d'entiers (pour avancer d'un cran, les doubles pour après), et je rebloque lors de l'appel.
Je ne trouve pas d'exemple correspondant exactement à ma démarche donc je vous resollicite.
 
Fichier .h de la fonction en dll :
 
#include "extcode.h"
#pragma pack(push)
#pragma pack(1)
 
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
int32_t dimSize;
int32_t CommandeNumRique[1];
} Int32ArrayBase;
typedef Int32ArrayBase **Int32Array;
 
/*!
 * AddTabInt
 */
void __cdecl AddTabInt(Int32Array *tabA, Int32Array *tabB, 
Int32Array *tabRes);
 
long __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);
 
/*
* Memory Allocation/Resize/Deallocation APIs for type 'Int32Array'
*/
Int32Array __cdecl AllocateInt32Array (int32 elmtCount);
MgErr __cdecl ResizeInt32Array (Int32Array *hdlPtr, int32 elmtCount);
MgErr __cdecl DeAllocateInt32Array (Int32Array *hdlPtr);
 
#ifdef __cplusplus
} // extern "C"
#endif
 
#pragma pack(pop)
 
 
 
 
Mon script scilab pour le test :
 
a=[12,25,24]
b=[2,41,9]
link('F:\Prog LabVIEW\Dll labview\dll2\SharedLibTabIntAdd.dll','AddTabInt','c')
res = call("AddTabInt",a,1,"i",b,2,"i","out",[1,3],3,"i")
disp(res)
 
Le message d'erreur dans la console :
 
-->exec('C:\Documents\Scilab\TestDllAddTabInt.sce', -1)
Bibliothèque partagée chargée.
Édition de liens effectuée.
Warning !!!
Scilab has found a critical error (EXCEPTION_ACCESS_VIOLATION)
with "call" function.
Save your data and restart Scilab.
 
 i   
 
Attention : Problème avec la pile...


Merci d'avance si vous voyez le problème d'accord entre prototype et appel de la fonction.
 
TR
ps :Par ailleurs y a t'il un document qui précise les limitations des types de données utilisables?
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/enseignement/attachments/20130731/32631137/attachment.htm>


Plus d'informations sur la liste de diffusion enseignement