[matlab/c#] DLL gebruiken lukt niet*

Pagina: 1
Acties:

  • Bint
  • Registratie: Juli 2002
  • Laatst online: 00:28
Voor mijn werk heb ik met de 7.3 compiler van matlab, een dll gebouwd, die ik wil includen in een c# project. Dit is inmiddels gelukt dankzij de volgende link:

http://www.mathworks.com/support/solutions/data/1-X1PFC.html

Daar wordt ook verteld hoe je een functie "called" uit die dll. Dat is inmiddels ook gelukt. Maar nu heb ik een nieuwe dll gebouwd, met de volgende functie erin:

Matlab:
1
function [bis, ais, isf, nbiq, qformat] = FLT(f0, f1, beta0, beta1, number_of_txfs, ftype)


bis, ais, f0, f1, beta0, beta1 en ftype zijn allemaal array's van doubles, de rest gewoon doubles

nu heb ik in de header file die wordt meegeleverd de volgende functie gevonden die ik moet gebruiken:

C:
1
2
3
4
5
6
extern LIB_libFLT_C_API void mlfFLT(int nargout, mxArray** bis, mxArray** ais
                                    , mxArray** isf, mxArray** nbiq
                                    , mxArray** qformat, mxArray* f0
                                    , mxArray* f1, mxArray* beta0
                                    , mxArray* beta1, mxArray* number_of_txfs
                                    , mxArray* ftype);


en ik probeer in mijn code de functie zo aan te roepen:
C#:
1
mlfFLT( 5, ref mxais, ref mxbis, ref mxisf, ref mxnbiq, ref mxqformat, mxf0, mxf1, mxbeta0, mxbeta1, mxnumber_of_txfs, mxftype);


nu krijg ik als ik de funtie heb uitgevoerd, bij de ref's alleen maar lege vars terug. Kan iemand mij hier mij mee helpen? ik ben er al uren mee bezig, en kom geen stap vooruit :(

Memories of yesterday, will grow, but never die


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Hoe heb je mlfFLT gedefinieerd in C#? Gebruik je MarshalAs? Heb je wel op de juiste manier het DllImport attribute gebruikt? Beetje meer info zou handig zijn... :)

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • Bint
  • Registratie: Juli 2002
  • Laatst online: 00:28
allemaal goed gedefinieerd..
het werkt nu ook, ik zag dat er een fout werd gegenereerd met de variabelen die ik gebruikte.. andere waardes gepakt, en hij loopt als een trein..

hoef die error er niet uit te halen ==> script hoeft namelijk niet hufter-proof te zijn ;)
wel effe een vraagje:

wat doet die MarshalAs?

Memories of yesterday, will grow, but never die