error in using calllib function

12 visualizzazioni (ultimi 30 giorni)
Mahnaz
Mahnaz il 17 Ago 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 Commenti
Mahnaz
Mahnaz il 17 Ago 2012
Modificato: Walter Roberson il 17 Ago 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");
}
}

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 17 Ago 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 Commento
Kaustubha Govind
Kaustubha Govind il 17 Ago 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

Accedi per commentare.

Categorie

Scopri di più su C Shared Library Integration in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by