Calling a C function from MATLAB

Hello,
I have one question: While I successfully create a dll file for my C file via MinGW, whenever I call my file with certain parameters I keep getting an error that is related to that this code in C returns NULL , any ideas please?
#ifdef WINDOWS
hLibrary = LoadLibrary ("fcnsuite.dll");
#else
hLibrary = dlopen ("./fcnsuite.so", RTLD_NOW);
#endif
And this gives "failed to load procedure"!!!

6 comentarios

Walter Roberson
Walter Roberson el 22 de Abr. de 2013
Does your C code have a "return" statement? http://msdn.microsoft.com/en-us/library/sta56yeb%28v=vs.80%29.aspx
seldeeno
seldeeno el 22 de Abr. de 2013
No return since my function is void, and my interface (mexfunction) also calls another void function in another file that is included as a dll
Friedrich
Friedrich el 23 de Abr. de 2013
"failed to load procedure" is not a standard C error. Seems more like a selfmade error somewhere in your code (I would guess when you call GetProcAdress which fails). Are you sure the LoadLibrary call works? So the DLL can be found? Is hLibrary a valid pointer?
seldeeno
seldeeno el 23 de Abr. de 2013
What you are saying is exactly what I have and the loadLibrary is the thing that is not getting the dll right and hence says that the procedure in the library is not found:
"procedure g06 not found in library file!Error using mlbsuite failed to load procedure"
Jan
Jan el 23 de Abr. de 2013
In which folders does LoadLibrary look for this dll-file?
seldeeno
seldeeno el 23 de Abr. de 2013
It is in the same folder as the C and .m files

Iniciar sesión para comentar.

Respuestas (1)

seldeeno
seldeeno el 23 de Abr. de 2013

0 votos

Ok people I got it to work. Actually I had to create the dll of the function using a command like: mbuild file1.c file1.exports with function names in this file1.exports and that did the trick
Thank you all for your comments!

1 comentario

please give more details about how you fixed this problem. at the end, the problem was in matlab or when compiling this:
gcc -c fcnsuite.c -DWINDOWS
dllwrap -o fcnsuite.dll fcnsuite.o
I really want to have access to this files. Thanks in advance

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Abr. de 2013

Comentada:

el 20 de Sept. de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by