error in using calllib function

15 visualizaciones (últimos 30 días)
Mahnaz
Mahnaz el 17 de Ag. de 2012
i want to use callib function but it shows me an error?
>> loadlibrary('t1.dll', 't1header.h')
>> calllib('t1','Add',2,3)
??? Error using ==> calllib
Method was not found.
i have Add fuction but when i use libfunctionsview it shows me an error :
>> libfunctionsview('t1')
??? Error using ==> libfunctionsview at 47
No library t1 can be located or no functions for library t1
Any suggestions on what is wrong?
  4 comentarios
Mahnaz
Mahnaz el 17 de Ag. de 2012
Editada: Walter Roberson el 17 de Ag. de 2012
>> [notfound, warnings] = loadlibrary('t1', 't1header.h')
Warning: No functions found in library.
> In loadlibrary at 444
notfound =
Empty cell array: 1-by-0
warnings =
''
t1header is:
#ifndef _T1_HEADER_H_
#define _T1_HEADER_H_
#if defined DLL_EXPORT
#define DECLDIR __declspec(dllexport)
#else
#define DECLDIR __declspec(dllimport)
#endif
extern "C"
{
__declspec(dllexport)/*DECLDIR*/ int Add( int a, int b );
__declspec(dllexport)/*DECLDIR*/ void Function( void );
}
#endif
and this is my source:
#include <stdio.h>
#include "t1header.h"
#define DLL_EXPORT
extern "C"
{
DECLDIR int Add( int a, int b )
{
return( a + b );
}
DECLDIR void Function( void )
{
printf("DLL Called.\n");
}
}

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 17 de Ag. de 2012
loadlibrary('shrlib', 'hfile') loads the functions defined in header file hfile and found in shared library shrlib into MATLAB. You must select a supported C compiler and Perl must be available.
Notice that the above says "C compiler". Your .h file is written for C++ (which we can tell from the extern "C")
  1 comentario
Kaustubha Govind
Kaustubha Govind el 17 de Ag. de 2012
Mahnaz: Also, looks like Titus helped a little with on your previous question which looks like the same issue: http://www.mathworks.com/matlabcentral/answers/45337-connecting-matlab-to-c-language-dll

Iniciar sesión para comentar.

Categorías

Más información sobre C Shared Library Integration en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by