[Scilab-Dev] call C function in Scilab 5.0.2

Allan CORNET allan.cornet at scilab.org
Fri Nov 7 13:41:56 CET 2008


Hi,

Can you attach your script and your dll ?

Thanks you

Allan CORNET

-----Message d'origine-----
De : Sebastien Barre [mailto:sebastienbarre at free.fr] 
Envoyé : vendredi 7 novembre 2008 13:34
À : dev at lists.scilab.org
Objet : [Scilab-Dev] call C function in Scilab 5.0.2

Dear Scilab users / Developpers,

I am currently working on the development of an interface between
measurement
devices and the great Scilab machine.
The idea is to be able to command the devices connected to the computer
directly
for the scilab command Line.

In this aim, I use the Scilab c_link function to link c function of a DLL,
then the Scilab call function.

It looks like this:

if (~c_link('QueryDevices'))
funcload = ['QueryDevices'];
link('SCILabIF.dll', funcload, 'c');
end

[NbrOfDevices] = call('QueryDevices', 'out', [1,1], 1, 'i');
if (NbrOfDevices <= 0) //error handling no devices found
 rc = -1;
end


My problem is:

The command:
[Name, Channels] = call('GetChannelName',  0 , 1, 'i', 'out', [32, 1], 2,
'c',
[1,1], 3, 'i');

works properly with version 4.1.2 of Scilab, but with Version 5.0.2 I get
the
message

Warning !!!
Scilab has found a critical error (EXCEPTION_ACCESS_VIOLATION)
with "call" function.
Save your data and restart Scilab.

Warning: stack problem..., cleared.



Does anybody  know  why? and how could I solve it.

Thanks in advance,

Sébastien



-- 
Sébastien Barré
Sinus Messtechnik GmbH
Foepplstrasse 13
D-04347 Leipzig
Germany
Tel: +49 341 244 29 28




More information about the dev mailing list