error in using calllib function

18 views (last 30 days)
Mahnaz
Mahnaz on 17 Aug 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 Comments
Mahnaz
Mahnaz on 17 Aug 2012
Edited: Walter Roberson on 17 Aug 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");
}
}

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 17 Aug 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 Comment
Kaustubha Govind
Kaustubha Govind on 17 Aug 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

Sign in to comment.

Categories

Find more on C Shared Library Integration in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!